|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mars 2005 Messages : 43 ![]() |
Bonjour,
Comment savoir si un fichier texte (dont je connais le nom) est actuellement ouvert par un autre process ??? J'ai cherché avec lsof mais cela me donne les process qui ont ouvert des fichiers mais je ne retoruve pas le nom de mon fichier merci de votre aide |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 990 ![]() |
la commande te donnera juste la ligne ou les lignes où le fichier est ouvert et se terminera correctement si le fichier est ouvert.
Cette commande ne donnera rien et se terminera avec un code de retour non nul si le fichier n'est pas ouvert.
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mars 2005 Messages : 43 ![]() |
merci celelibi.
Je n'arrive pas à faire fonctionner lsof comme tu l'indique. J'ai ouvert un fichier avec kwrite : /home/xx/toto.txt lorsque je fais : lsof /home/xx/toto.txt je n'ai aucun résultat par contre si je fais : lsof /home/xx j'ai : COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 4203 xx cwd DIR 3,70 4096 3424319 /home/xx kwrite 5124 xx cwd DIR 3,70 4096 3424319 /home/xx qui m'indique que j'ai un fichier ouvert par kwrite dans ce repertoire, mais je ne sais pas lequel Mon problème est de savoir si un fichier est déjà ouvert par un autre process avant de le deplacer pour faire un traitement dessus. J'ai un répertoire où je telecharge des fichiers par filezilla. D'autre part, j'ai un process qui scrute ce répertoire et qui déplace les fichiers répondant à un certain critère (nom particulier) pour pouvoir les traiter ensuite. Dans le cas de gros fichiers, je voudrais savoir quand le process de telechargement en a fini avec le fichier pour ne pas avoir un fichier tronqué. |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 990 ![]() |
Ton terminal est assez large pour afficher les lignes complètes ?
Sinon les commandes suivantes permette d'afficher les lignes complètes quitte à ce qu'elles soient sur plusieurs lignes. Le comportement de ton lsof me semble un peu étrange, c'est normalement l'option +D répertoire (ou bien +d répertoire) qui affiche la liste des fichiers ouverts qui se trouvent dans un répertoire. Et sinon, tu es sûr que c'est bien la commande lsof que tu exécute et pas un alias ? which lsof devrait te renseigner là dessus.
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter. |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : mars 2005 Messages : 43 ![]() |
kwrite doit fonctionner comme vi, cad avec un fichier temporaire.
J'ai ouvert mon fichier toto.txt avec vi, et là vi cree un fichier .toto.txt.swp sur lequel il travaille ce qui fait que lorsque je fait lsof /home/xx/toto.txt je n'ai rien et lorsque je fais lsof /home/xx/.toto.txt.swp j'ai la bonne ligne : COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME vi 4203 xx 4u REG 3,70 4096 3424319 /home/xx/.toto.txt.swp Donc ça marche !!! Je vais essayer de l'utiliser dans mon cas particulier. Merci pour le coup de main. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com