Qué procesos tienen abierto un fichero – Qué ficheros tiene abiertos un proceso.

En esta entrada vamos a revisar comandos que nos servirán para analizar problemas que requieran: bien saber que procesos tienen abierto un fichero, bien que ficheros tiene abiertos un proceso en Solaris y GNU/Linux.

1. Ver que procesos tienen abierto un fichero.

GNU/Linux – Ver que procesos usan una librería /lib/x86_64-linux-gnu/libm-2.19.so:

$ lsof /lib/x86_64-linux-gnu/libm-2.19.so
COMMAND    PID       USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
gnome-ses 1794 dudumarina mem    REG    8,1  1071552 811579 /lib/x86_64-linux-gnu/libm-2.19.so
ibus-ui-g 1890 dudumarina mem    REG    8,1  1071552 811579 /lib/x86_64-linux-gnu/libm-2.19.so
ibus-x11  1892 dudumarina mem    REG    8,1  1071552 811579 /lib/x86_64-linux-gnu/libm-2.19.so
...

Solaris – Procesos que tienen abierto el fichero (directorio actual):

fuser .

2. En el otro lado, también resulta interesante saber que ficheros tiene abiertos un proceso.

Los comandos /usr/sbin/lsof -p (GNU/Linux) y pfiles (Solaris) devuelven una lista con los ficheros que tiene abiertos el proceso que se le pasa como argumento.

Linux:

ls -ltr /proc/PID/fd | wc -l
lsof -p PID

Solaris:

pfiles PID

En este sentido, una funcionalidad muy útil, sería por ejemplo conocer los ficheros que tiene abiertos un programa implementado por una tercera parte (como los ficheros *.jar de un proceso java programado por un tercero).

Para finalizar, en GNU/Linux lsof -i:PORT devuelve los PID’s de procesos que usan el puerto pasado como parámetro (combinar con netstat -na | grep PORT)

/usr/sbin/lsof -i:PORT

Saludos desde el otro lado de la pantalla negra.

Esta entrada ha sido publicada en Sin categoría y etiquetada como , , , , . Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *