Як визначити шлях до бінарного процесу?


30

Чи є спосіб дізнатися розташування каталогу / диска, з якого було розпочато процес? Мені відомо про кріплення / proc, але не дуже, де його заглянути.


1
Ви маєте на увазі розташування двійкового чи каталогу, з якого розпочався процес?
Лекенштейн

Вибачте за неоднозначність, я маю на увазі бінарне
SuperJumbo

Відповіді:


37

Таким /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'

О так, я майже там був. Легенда, дякую.
SuperJumbo

15

Можливо, whichце те, що ви шукаєте. Наприклад, у моїй системі

which firefox 

повертає

/usr/bin/firefox

Дивіться також Знайти шлях запуску програми на Solaris, Ubuntu, Suse або Redhat Linux .


6
whichкласно, але він повертає програми лише у вашому $ PATH. Якщо я побіжу RandomProgramIDownloadedToErisKnowsWhere.bin, це не принесе користі.
djeikyb

6

Надавши ідентифікатор процесу, ви можете використовувати:

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
    

2
Ви можете робити цікаві речі /proc/$pid/exe, якщо двійковий файл випадково видалено, ви можете відновити його за допомогою:dd if=/proc/$pid/exe of=restored-binary
Lekensteyn

1

Натисніть Ctrl+ Alt+, Tщоб перейти до терміналу та введіть:

ls -al /proc/{pid}/fd  

а потім перевірити вихід

Тут буде вказано всі файли, з якими пов'язаний ваш процес ...


Чи можете ви, будь ласка, переглянути мої редагування, а також переглянути допомогу щодо редагування, щоб покращити читабельність ваших відповідей у ​​майбутньому ... ;-)
Fabby

0

Усі команди в інших відповідях хороші, але ви можете зробити ще більше - побачивши, як деякий процес був запущений ще до того, як він потрапив до списку процесів.

Запуск у терміналі:

top

І поки він працює, натисніть клавіатуру, Cі ви отримаєте команду запущених процесів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.