Bagaimana cara menentukan path ke biner dari suatu proses?


30

Apakah ada cara untuk mengetahui lokasi direktori / disk proses dimulai? Saya menyadari / proc mount tetapi tidak benar-benar ke mana harus mencari ke dalamnya.


1
Apakah maksud Anda lokasi biner, atau direktori tempat proses dimulai?
Lekensteyn

Maaf untuk ambiguitas, maksud saya biner
SuperJumbo

Jawaban:


37

The /proccara akan memeriksa exelink pada direktori yang sesuai dengan pid.

Mari kita ambil contoh dengan update-notifier:

Temukan pid, yaitu 15421 dalam contoh ini:

egil@gud:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

Cari tautan simbolis:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'

Oh ya, aku hampir sampai. Legenda, terima kasih.
SuperJumbo


6

Memberikan ID proses yang tersedia, Anda dapat menggunakan:

readlink -f /proc/$pid/exe

(ganti $piddengan ID proses suatu proses)

Jika prosesnya bukan milik Anda, Anda harus meletakkannya sudodi depannya.

Contoh untuk menentukan lokasi perintah firefox:

  1. Output dari ps ax -o pid,cmd | grep firefox:

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. 28179 adalah ID proses, jadi Anda harus menjalankan:

    readlink -f /proc/28179/exe
    

    yang keluaran:

    /usr/bin/firefox
    

2
Anda dapat melakukan hal-hal keren dengan /proc/$pid/exe, jika biner terhapus secara tidak sengaja, Anda dapat memulihkannya dengan:dd if=/proc/$pid/exe of=restored-binary
Lekensteyn

1

Tekan Ctrl+ Alt+ Tuntuk pergi ke terminal dan ketik:

ls -al /proc/{pid}/fd  

dan kemudian periksa hasilnya

Ini akan mencantumkan semua file yang terkait dengan proses Anda ...


Bisakah Anda meninjau suntingan saya dan juga meninjau bantuan pengeditan untuk meningkatkan keterbacaan jawaban Anda di masa depan ... ;-)
Fabby

0

Semua perintah dalam jawaban lain baik, tetapi Anda bisa melakukan lebih banyak lagi - melihat bagaimana beberapa proses telah benar-benar dijalankan sebelum sampai ke daftar proses.

Jalankan di terminal:

top

Dan saat sedang berjalan, tekan keyboard Cdan Anda akan mendapatkan perintah dari proses yang dijalankan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.