Intenté eliminar un archivo en Linux usando rm -rf file_name
, pero obtuve el error:
rm: file_name not removed. Text file busy
¿Cómo puedo saber qué proceso está utilizando este archivo?
Puede usar el fuser
comando, como:
fuser file_name
Recibirá una lista de procesos que utilizan el archivo.
Puede usar diferentes banderas con él para recibir una salida más detallada.
Puede encontrar más información en el artículo de Wikipedia del fusor o en las man
páginas.
fuser
implementaciones sean iguales o funcionen de la misma manera. Incluso si-i
está definido en POSIX, la implementación particular que está utilizando no tiene necesariamente las mismas opciones que las descritas en el artículo de Wikipedia. Por ejemplo, estoy usando AIX en este momento, y elfuser
disponible en este sistema tampoco tiene la-i
opción.fuser
nilsof
estaban trabajando para mí en un invitado de virtualbox. Esta respuesta me salvó.La respuesta de @ jim es correcta,
fuser
es lo que quieres.Además (o alternativamente), puede usar
lsof
para obtener más información, incluido el nombre de usuario, en caso de que necesite permiso (sin tener que ejecutar un comando adicional) para finalizar el proceso. (Aunque, por supuesto, si lo que desea es matar el proceso,fuser
puede hacerlo con su-k
opción. Puedefuser
usar otras señales con la-s
opción; consulte la página del manual para obtener más detalles).Por ejemplo, con una
tail -F /etc/passwd
ejecución en una ventana:Tenga en cuenta que también puede utilizar
lsof
para averiguar qué procesos utilizan sockets particulares. Una excelente herramienta para tener en tu arsenal.fuente
lsof | head -1
para ver todos los encabezados.lsof | grep -E "PID|<your_process_name>"
muestra tanto la primera línea como el proceso que desea consultar.Como se muestra en la imagen adjunta:
fuente
tree
Lee algo de stdin? Si es así, ¿qué hace con esa entrada?tree
, nolsof
. Por lo que tengo entendido,tree
no lee de la entrada estándar, por lo tanto, la salida delsof
se descarta cuando ejecutalsof | tree ...
. Si eso es correcto, entonceslsof | tree MyFold
es lo mismo quetree MyFold
, que solo muestra el contenido, pero no qué archivos abre algún proceso.