Respuestas:
Prueba el watchcomando:
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
watchestá 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
-yy -fsi está intentando depurar algo que se ejecuta en un shell. Simplemente pase el PID de shell y -fseguirá cualquier bifurcación.
Podrías combinar lsofy 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.
-ropción para lsof. Por lo tanto, solía watchejecutar lsofcada 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