Apakah ada cara untuk mengetahui lokasi direktori / disk proses dimulai? Saya menyadari / proc mount tetapi tidak benar-benar ke mana harus mencari ke dalamnya.
Apakah ada cara untuk mengetahui lokasi direktori / disk proses dimulai? Saya menyadari / proc mount tetapi tidak benar-benar ke mana harus mencari ke dalamnya.
Jawaban:
The /proc
cara akan memeriksa exe
link 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'
Mungkin which
itu yang Anda cari. Misalnya, di sistem saya
which firefox
kembali
/usr/bin/firefox
Lihat juga Temukan Jalur Aplikasi yang Berjalan di Solaris, Ubuntu, Suse atau Redhat Linux .
which
itu keren, tetapi hanya mengembalikan program dalam $ PATH Anda. Jika saya menjalankan RandomProgramIDownloadedToErisKnowsWhere.bin
, ini tidak akan banyak berguna.
Memberikan ID proses yang tersedia, Anda dapat menggunakan:
readlink -f /proc/$pid/exe
(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
:
22831 grep --color=auto firefox
28179 /usr/lib/firefox-4.0.1/firefox-bin
28179
adalah ID proses, jadi Anda harus menjalankan:
readlink -f /proc/28179/exe
yang keluaran:
/usr/bin/firefox
/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:
ls -al /proc/{pid}/fd
dan kemudian periksa hasilnya
Ini akan mencantumkan semua file yang terkait dengan proses Anda ...
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 C
dan Anda akan mendapatkan perintah dari proses yang dijalankan.