回答:
/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