Как определить путь к двоичному процессу процесса?

21

Есть ли способ узнать местоположение каталога / диска, из которого был начат процесс? Я знаю о монте / proc, но не знаю, где его заглянуть.

    
задан SuperJumbo 16.06.2011 в 12:47
источник

3 ответа

26

Способ /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'
    
ответ дан Egil 16.06.2011 в 12:56
источник
11

Возможно, which - это то, что вы ищете. Например, в моей системе

which firefox 

возвращает

/usr/bin/firefox

См. также Найти путь приложения, работающего на Solaris, Ubuntu, Suse или Redhat Linux .

    
ответ дан N.N. 16.06.2011 в 12:51
3

Если у вас есть идентификатор процесса, вы можете использовать:

readlink -f /proc/$pid/exe

(замените $pid идентификатором процесса процесса)

Если процесс не принадлежит вам, вам придется поставить sudo перед ним.

Пример определения местоположения команды firefox :

  1. Вывод ps ax -o pid,cmd | grep firefox :

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. 28179 - это идентификатор процесса, поэтому вы должны запускать:

    readlink -f /proc/28179/exe
    

    , который выводит:

    /usr/bin/firefox
    
ответ дан Lekensteyn 16.06.2011 в 12:57