Comment savoir quel processus utilise un fichier sous Linux?
J'ai essayé de supprimer un fichier sous Linux en utilisant rm -rf file_name
, mais j'ai eu l'erreur:
rm: file_name not removed. Text file busy
Comment puis-je savoir quel processus utilise ce fichier?
2 réponses
Vous pouvez utiliser la commande fuser
, comme:
fuser file_name
Vous recevrez une liste des processus utilisant le fichier.
, Vous pouvez utiliser différents drapeaux avec elle, afin de recevoir une sortie plus détaillée.
Vous pouvez trouver plus d'informations dans l'article Wikipedia defuser , ou dans les pages man
.
La réponse de@jim est correcte - {[1] } est ce que vous voulez.
En outre (ou alternativement), vous pouvez utiliser lsof
pour obtenir plus d'informations, y compris le nom d'utilisateur, au cas où vous auriez besoin d'une autorisation (sans avoir à exécuter une commande supplémentaire) pour tuer le processus. (Bien sûr, si tuer le processus est ce que vous voulez, fuser
peut le faire avec son option -k
. Vous pouvez demander à fuser
d'utiliser d'autres signaux avec l'option -s
-- consultez la page de manuel pour plus de détails.)
, Par exemple, avec un tail -F /etc/passwd
en cours d'exécution dans une fenêtre:
ghoti@pc:~$ lsof | grep passwd
tail 12470 ghoti 3r REG 251,0 2037 51515911 /etc/passwd
Notez que vous pouvez également utiliser lsof
pour savoir quels processus utilisent des sockets particuliers. Un excellent outil à avoir dans votre arsenal.