Los archivos abiertos por el proceso XYZ se pueden encontrar con el comando
ls -l /proc/PID/fd
¿Hay alguna forma de hacerlo de una manera más interactiva, como tail
la actualización automática cada x segundos?
Los archivos abiertos por el proceso XYZ se pueden encontrar con el comando
ls -l /proc/PID/fd
¿Hay alguna forma de hacerlo de una manera más interactiva, como tail
la actualización automática cada x segundos?
Prueba el watch
comando:
watch -n 10 ls -l /proc/$$/fd
El reloj es lindo.
Podrías usar una vieja escuela while loop:
while :
do
ls -l /proc/$$/fd
sleep 10
done
watch
está en el paquete procps en sistemas basados en Debian y el rpm procps en sistemas derivados de RedHat.
Si desea ver cada archivo a medida que se abre, puede filtrarlo con
strace
. Por ejemplo:fuente
-y
y-f
si está intentando depurar algo que se ejecuta en un shell. Simplemente pase el PID de shell y-f
seguirá cualquier bifurcación.Podrías combinar
lsof
ywatch
.Por ejemplo,
watch "lsof -p 1234"
le dará una lista de todos los archivos abiertos de pid 1234 cada 2 segundos. Puede cambiar algunos parámetros para satisfacer sus necesidades.fuente
-r
opción paralsof
. Por lo tanto, solíawatch
ejecutarlsof
cada dos segundos.Creé un archivo bash donde estaba escribiendo la salida del comando en un archivo. El archivo se generó en base a la fecha actual. Aquí estoy contando el número de archivos abiertos.
fuente