XYZプロセスによって開かれたファイルは、コマンドで見つけることができます
ls -l /proc/PID/fd
とにかく、tail
x秒ごとに自動更新するような、よりインタラクティブな方法で実行できる方法はありますか?
watch
コマンドを試してください:
watch -n 10 ls -l /proc/$$/fd
時計はいいです。
古い学校のwhileループを使用できます。
while :
do
ls -l /proc/$$/fd
sleep 10
done
watch
は、debianベースのシステムではprocpsパッケージにあり、RedHat派生システムではprocps rpmです。
開かれている各ファイルを表示したい場合は、strace
でフィルターできます。例えば:
strace -p _pid_of_app_ -e trace=open,close
lsof
とwatch
を組み合わせることができます。
例えば watch "lsof -p 1234"
は、pid 1234のすべての開いているファイルのリストを2秒ごとに提供します。必要に応じて一部のパラメータを変更できます。
コマンドの出力をファイルに書き込むbashファイルを作成しました。ファイルは、現在の日付に基づいて生成されました。ここでは、開いているファイルの数を数えています。
#!/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