Os arquivos abertos pelo processo XYZ podem ser encontrados com o comando
ls -l /proc/PID/fd
Existe alguma maneira que possa ser feita de uma maneira mais interativa, como tail
a atualização automática a cada x segundos?
Os arquivos abertos pelo processo XYZ podem ser encontrados com o comando
ls -l /proc/PID/fd
Existe alguma maneira que possa ser feita de uma maneira mais interativa, como tail
a atualização automática a cada x segundos?
Experimente o watch
comando:
watch -n 10 ls -l /proc/$$/fd
O relógio é bom.
Você pode usar uma velha escola while loop:
while :
do
ls -l /proc/$$/fd
sleep 10
done
watch
está no pacote procps em sistemas baseados em debian e o procps rpm em sistemas derivados RedHat.
Se você deseja ver cada arquivo enquanto ele está sendo aberto, é possível filtrá-lo com
strace
. Por exemplo:fonte
-y
e-f
se você estiver tentando depurar algo em execução em um shell. Basta passar o PID do shell e-f
seguirá os garfos.Você pode combinar
lsof
ewatch
.Por exemplo
watch "lsof -p 1234"
, você terá uma lista de todos os arquivos abertos do pid 1234 a cada 2 segundos. Você pode alterar alguns parâmetros para atender às suas necessidades.fonte
-r
opçãolsof
. Portanto, eu costumavawatch
executar alsof
cada dois segundos.Criei um arquivo bash onde estava gravando a saída do comando em um arquivo. O arquivo foi gerado na data atual base. Aqui estou contando o número de arquivos abertos.
fonte