lsofコマンドの出力がわかりません。
私が書くとき
lsof -p PID
使ってみると4行が出ます。
lsof | grep PID
何百もの行があります。
同じ結果を返すべきではありませんか?
ご回答ありがとうございます。出力は次のとおりです。サブプロセスのようですね。それともこれはどういう意味ですか?
lsof -p 29076
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
lsof |grep 29076|head -20
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
java 29076 300 pr cwd unknown /proc/29076/task/300/cwd (readlink: Permission denied)
java 29076 300 pr rtd unknown /proc/29076/task/300/root (readlink: Permission denied)
java 29076 300 pr txt unknown /proc/29076/task/300/exe (readlink: Permission denied)
java 29076 300 pr NOFD /proc/29076/task/300/fd (opendir: Permission denied)
java 29076 329 pr cwd unknown /proc/29076/task/329/cwd (readlink: Permission denied)
java 29076 329 pr rtd unknown /proc/29076/task/329/root (readlink: Permission denied)
java 29076 329 pr txt unknown /proc/29076/task/329/exe (readlink: Permission denied)
java 29076 329 pr NOFD /proc/29076/task/329/fd (opendir: Permission denied)
java 29076 330 pr cwd unknown /proc/29076/task/330/cwd (readlink: Permission denied)
java 29076 330 pr rtd unknown /proc/29076/task/330/root (readlink: Permission denied)
java 29076 330 pr txt unknown /proc/29076/task/330/exe (readlink: Permission denied)
java 29076 330 pr NOFD /proc/29076/task/330/fd (opendir: Permission denied)
java 29076 331 pr cwd unknown /proc/29076/task/331/cwd (readlink: Permission denied)
java 29076 331 pr rtd unknown /proc/29076/task/331/root (readlink: Permission denied)
java 29076 331 pr txt unknown /proc/29076/task/331/exe (readlink: Permission denied)
java 29076 331 pr NOFD /proc/29076/task/331/fd (opendir: Permission denied)
ベストアンサー1
実際の出力を見ずに何が起こっているのか正確に言うのは難しいですが、コマンドが「PID」のある行ではなく、lsof -p PID
指定されたPIDで開かれたファイルのみを印刷するという事実によるものと思います。lsof | grep PID
ラインのどこにでもあります。たとえば、PID = 123を検索すると、grep
オプションはPID 1231、1232、1233などの行とフルパスの123を含むフォルダ内のすべてのファイルも印刷します。
編集:特定の例の違いは、lsof
スレッドによって開かれたファイルが無視されることです。例の出力を見ると、grep
3番目の列は「TID」またはスレッドIDです。 TIDなしの行は、-p
このオプションを使用したときに表示されるものと一致します。 TIDを持つ行(つまり、他のスレッドによって開かれた行)は追加です。