10 XYZプロセスによって開かれたファイルは、コマンドで見つけることができます ls -l /proc/PID/fd とにかく、tailx秒ごとに自動更新するなど、よりインタラクティブな方法で実行できる方法はありますか? monitoring performance-monitoring process files — フランキー ソース
15 次のwatchコマンドを試してください。 watch -n 10 ls -l /proc/$$/fd 時計はいいです。 古い学校のwhileループを使用できます。 while : do ls -l /proc/$$/fd sleep 10 done watchdebianベースのシステムではprocpsパッケージに、RedHat派生システムではprocps rpmに含まれています。 — デイビー ソース 1 スリープ自体は、whileループの条件として使用できるため、次のようにエレガントに記述できます。ls -l / proc / $$ / fd;を実行します。完了 — ipozgaj
7 開いている各ファイルを表示したい場合は、でフィルタリングできますstrace。例えば: strace -p _pid_of_app_ -e trace=open,close — エフゲニー ソース 2 これが本当に最良の答えです。フラグ-yと-f、シェルで実行されている何かをデバッグしようとしている場合は、お勧めします。シェルPIDを渡すだけで、-fどのフォークにも従います。 — Aea
4 lsofと組み合わせることができwatchます。 たとえばwatch "lsof -p 1234"、2秒ごとにpid 1234の開いているすべてのファイルのリストが表示されます。必要に応じて一部のパラメータを変更できます。 — キリスト教徒 ソース 2秒ごとにリストが表示されることはありません。そのためには、パラメーター-r 2がありません!-pはPIDです。答えは非常に悪いです! — mahatmanich 2017 2 ニース、の-rオプションを認識していませんでしたlsof。そのため、以前watchはlsof2秒ごとに実行していました。 — クリスチャン
0 コマンドの出力をファイルに書き込む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 — アカンシャシャルマ ソース