Risposte:
Prova il watch
comando:
watch -n 10 ls -l /proc/$$/fd
Guarda è bello.
È possibile utilizzare una vecchia scuola mentre loop:
while :
do
ls -l /proc/$$/fd
sleep 10
done
watch
è nel pacchetto procps su sistemi basati su debian e l' rpm procps su sistemi derivati RedHat.
Se vuoi vedere ogni file mentre viene aperto, puoi filtrarlo con strace
. Per esempio:
strace -p _pid_of_app_ -e trace=open,close
-y
e -f
se stai tentando di eseguire il debug di qualcosa in esecuzione in una shell. Basta passare il PID della shell e -f
seguirà tutte le forcelle.
Potresti combinare lsof
e watch
.
Ad esempio, watch "lsof -p 1234"
ti fornirà un elenco di tutti i file aperti di pid 1234 ogni 2 secondi. È possibile modificare alcuni parametri per soddisfare le proprie esigenze.
-r
dell'opzione per lsof
. Quindi watch
eseguivo lsof
ogni due secondi.
Ho creato un file bash in cui stavo scrivendo l'output del comando su un file. Il file è stato generato alla data corrente di base. Qui sto contando il numero di file aperti.
#!/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