3

freebsd に実行中のプロセスの pid があります。現在のディレクトリを取得するにはどうすればよいですか?

4

4 に答える 4

3

現在の作業ディレクトリの inode 番号を取得するには、

fstat -p $PID

lsof は、現在の作業ディレクトリの人間が読める形式を提供するように見えますが、ローカルの FreeBSD マシンにはそれがインストールされていないため、それを確認することはできません。

于 2009-07-21T15:20:49.333 に答える
3

fstat は inode 番号とファイルシステムを見つけることができ、find は正しいディレクトリを見つけることができます。

これを試して:

fstat -p $$|perl -ane '$F[3] eq "wd" && system("find",$F[4],"-xdev","-inum",$F[5],"-print");'

非ルートとして実行すると、find はおそらくかなりの数の「許可が拒否されました」というメッセージを出力しますが、これは(最初の一重引用符の後に) のclose(STDERR); 前に挿入することで回避できます。$F[3]

于 2009-11-10T18:24:51.513 に答える
1

FreeBSD の最近のバージョンでは、 を使用できますprocstat -f $PID。これは、まだカーネル名キャッシュにある場合にパス名を表示します。

于 2010-08-01T21:05:27.917 に答える