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.
whichitu keren, tetapi hanya mengembalikan program dalam $ PATH Anda. Jika saya menjalankan RandomProgramIDownloadedToErisKnowsWhere.bin, ini tidak akan banyak berguna.
djeikyb
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.
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.
Jawaban:
The
/proc
cara akan memeriksaexe
link pada direktori yang sesuai dengan pid.Mari kita ambil contoh dengan
update-notifier
:Temukan pid, yaitu 15421 dalam contoh ini:
Cari tautan simbolis:
sumber
Mungkin
which
itu yang Anda cari. Misalnya, di sistem sayakembali
Lihat juga Temukan Jalur Aplikasi yang Berjalan di Solaris, Ubuntu, Suse atau Redhat Linux .
sumber
which
itu keren, tetapi hanya mengembalikan program dalam $ PATH Anda. Jika saya menjalankanRandomProgramIDownloadedToErisKnowsWhere.bin
, ini tidak akan banyak berguna.Memberikan ID proses yang tersedia, Anda dapat menggunakan:
(ganti
$pid
dengan ID proses suatu proses)Jika prosesnya bukan milik Anda, Anda harus meletakkannya
sudo
di depannya.Contoh untuk menentukan lokasi perintah
firefox
:Output dari
ps ax -o pid,cmd | grep firefox
:28179
adalah ID proses, jadi Anda harus menjalankan:yang keluaran:
sumber
/proc/$pid/exe
, jika biner terhapus secara tidak sengaja, Anda dapat memulihkannya dengan:dd if=/proc/$pid/exe of=restored-binary
Tekan Ctrl+ Alt+ Tuntuk pergi ke terminal dan ketik:
dan kemudian periksa hasilnya
Ini akan mencantumkan semua file yang terkait dengan proses Anda ...
sumber
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:
Dan saat sedang berjalan, tekan keyboard
C
dan Anda akan mendapatkan perintah dari proses yang dijalankan.sumber