回答:
/proc方法は、検査することになりexe、PIDに対応するディレクトリ内のリンクを。
例を見てみましょうupdate-notifier:
pidを見つけます。この例では15421です。
egil@gud:~$ ps x | grep update-notifier
2405 pts/4 S+ 0:00 grep update-notifier
15421 ? Sl 0:00 update-notifier
シンボリックリンクを検索します。
egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'
たぶんwhichあなたが探しているものです。たとえば、私のシステムで
which firefox
返す
/usr/bin/firefox
Solaris、Ubuntu、Suse、またはRedhat Linuxで実行されているアプリケーションのパスの検索も参照してください。
whichクールですが、$ PATHのプログラムのみを返します。を実行するとRandomProgramIDownloadedToErisKnowsWhere.bin、これはあまり役に立ちません。
利用可能なプロセスIDを提供すると、以下を使用できます。
readlink -f /proc/$pid/exe
($pidプロセスのプロセスIDで置き換えます)
プロセスが所有者でない場合は、そのsudo前に配置する必要があります。
コマンドの場所を決定する例firefox:
の出力ps ax -o pid,cmd | grep firefox:
22831 grep --color=auto firefox
28179 /usr/lib/firefox-4.0.1/firefox-bin
28179 はプロセスIDなので、次を実行する必要があります。
readlink -f /proc/28179/exe
どの出力:
/usr/bin/firefox
/proc/$pid/exe、バイナリが誤って削除された場合、あなたがそれを復元することができます:dd if=/proc/$pid/exe of=restored-binary