2009-07-21 11 views

答えて

3

することはでき

fstat -p $PID 

lsofのは、あなたの現在の作業ディレクトリの人間が読める形式を与えるように見えますが、我々はそれがどんなにインストールされていないと、現在の作業ディレクトリのinode番号を取得しますローカルのFreeBSDマシンのうち、私はそれを確認することはできません。

-1

/proc/$ PID/cwdには、現在の作業ディレクトリのプログラムへのシンボリックリンクが含まれています。

+1

'/ proc'ファイルシステムは、FreeBSDのすべてのインストールで利用できるとは限りません。 –

+0

これはLinuxでも動作しますが、FreeBSDでは/ procの一部ではないようです。 procfsのmanページを参照してください:http://www.freebsd.org/cgi/man.cgi?query=procfs –

3

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

このお試しください:非rootとして実行すると見つけ、

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

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

+0

hax ............ – Aki

1

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

関連する問題