Apa perintah terminal untuk mengetahui id proses

12

Saya ingin keluar dari proses menggunakan baris perintah, tapi saya tidak bisa mengingat perintah untuk mencari ID proses. Adakah yang tahu?

jumpnett
sumber

Jawaban:

13

Perintah untuk mengetahui id proses (diberi nama) adalah pidof. Namun karena niat Anda adalah untuk mematikan proses, ada cara yang lebih baik / lebih mudah daripada menggunakan pidofuntuk menemukan pidnya terlebih dahulu:

Dengan asumsi proses yang ingin Anda bunuh secara unik diidentifikasi dengan namanya (atau Anda ingin membunuh semua proses dengan nama itu), Anda tidak perlu tahu pidnya. Anda cukup melakukannya killall processname.

Jika ada beberapa proses dengan nama yang sama, tetapi Anda hanya ingin membunuh salah satu dari mereka, menggunakan pidoftidak akan banyak membantu Anda, karena itu akan memberi Anda pids, tetapi tidak akan memberi Anda informasi apa pun untuk menentukan mana dari Pids adalah bagian dari proses yang ingin Anda bunuh.

Dalam hal ini Anda dapat melakukan ps aux | grep processnameyang akan menunjukkan semua proses dengan nama yang diberikan serta konsol yang mereka jalankan (jika ada) dan argumen yang mereka gunakan, yang diharapkan memungkinkan Anda untuk mengidentifikasi proses yang Anda cari .

Jika proses membuka X-windows apa saja, Anda juga dapat menggunakan xkilluntuk membunuh (memohon xkilldan kemudian klik pada jendela).

sepp2k
sumber
7

Anda harus melihat pgrepdan pkill, dua utilitas yang sangat berguna dan kuat yang ditemukan di sebagian besar sistem Linux dan UNIX.

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
sajb
sumber
5

Anda dapat berjalan ps -Adi terminal untuk menunjukkan semua proses (dengan ID prosesnya) yang sedang berjalan.

TheXed
sumber
Pipa untuk grepmencari nama proses tertentu:ps -A | grep 'my name'
Gabriel Staples
2

Saya juga punya masalah serupa. Saya menggunakan pstree -p; ini menunjukkan kepada saya proses yang sedang berjalan termasuk ID Proses.

Meintjes
sumber
perintah menarik
jumpnett
1

pidof. Masalah man pidofuntuk detail.

senapan
sumber
1

Favorit saya adalah pstree -p | grep $(program_name). Ini sebenarnya memahami proses, menyoroti dan menunjukkan pid dalam tanda kurung.

Favorit saya berikutnya (terutama ketika pemrograman dan membutuhkan semua tawaran dari proses) adalah pgrep -law "". Ini benar-benar memberi Anda setiap pid berjalan diikuti oleh aplikasi (dengan jalur absolut).

Ini dapat direduksi menjadi pgrep -lw ""untuk pid diikuti dengan nama program atau bahkan hanya pgrep -luntuk semua pids

Tentu saja, Anda dapat mencari nama program (atau bagian dari program) tertentu. (Yaitu pgrep -lw firefmungkin akan menampilkan sesuatu seperti "4567 firefox").

dylnmc
sumber
Bukankah pstree -psH $(pgrep prgram_name)lebih baik untuk kasus pertama?
muru
Ya itu juga berfungsi. Anda bisa membuat alias untuk itu. Saya hanya menggunakan $ () untuk mewakili nama program; Saya pikir mengetik $ (nama pgrep) sedikit mengganggu karena tanda dolar, tapi saya pikir alias itu bisa membantu.
dylnmc
0

Jawaban ini, dari @Ben pada pertanyaan duplikat , telah memecahkan masalah saya:

Pertimbangkan untuk menggunakan topperintah di terminal.

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

melalui man top

Gui Imamura
sumber