FreeBSD:プロセスIDによる現在の実行中のプロセス
-
18-09-2019 - |
質問
FreeBSDで実行中のプロセスのPIDがあります。現在のディレクトリを取得するにはどうすればよいですか?
解決
現在の作業ディレクトリのイノード番号を取得できます
fstat -p $PID
LSOFは、現在の作業ディレクトリの人間の読み取り可能な形式を提供するように見えますが、ローカルFreeBSDマシンにはインストールされていないため、確認できません。
他のヒント
FSTATはINODE番号とファイルシステムを見つけることができ、正しいディレクトリを見つけることができます。
これを試して:
fstat -p $$|perl -ane '$F[3] eq "wd" && system("find",$F[4],"-xdev","-inum",$F[5],"-print");'
非ルートとして実行すると、挿入することで避けることができるかなりの数の「許可を拒否された」メッセージを見つけます close(STDERR);
前の $F[3]
(最初の単一の引用の後)。
FreeBSDの最近のバージョンでは、使用できます procstat -f $PID
, 、それがまだカーネル名キャッシュにある場合、パス名を表示します。
/proc/$ pid/cwdには、プログラムの現在の作業ディレクトリへのSymlinkが含まれています。
所属していません StackOverflow