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 savoir quel processus utilise ce fichier?
Vous pouvez utiliser la commande fuser
, comme ceci:
fuser file_name
Vous recevrez une liste de processus utilisant le fichier.
Vous pouvez utiliser différents indicateurs pour obtenir une sortie plus détaillée.
Vous pouvez trouver plus d’informations dans les article Wikipedia de fuser , ou dans les pages man
.
La réponse de @ jim est correcte - fuser
est ce que vous voulez.
De plus (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 de commande supplémentaire) pour arrêter le processus. (Bien sûr, si tuer le processus est ce que vous voulez, fuser
peut le faire avec son option -k
. Vous pouvez avoir fuser
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
s'exécutant 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 particulières. Un excellent outil à avoir dans votre arsenal.