Respuestas:
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:
strace -p _pid_of_app_ -e trace=open,close
-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
y watch
.
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.
-r
opción para lsof
. Por lo tanto, solía watch
ejecutar lsof
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.
#!/bin/bash
while :
do
cd /proc/<PID>/fd
today=$(date +"%m-%d-%Y")
filename="/tmp/${today}.txt"
ls -l | wc -l >> "${filename}"
sleep 10
done