Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk mematikan proses dalam linux
Biasa:
Pertama, gunakan ps untuk menyemak prosesnya adalah seperti berikut:
Salin kod seperti berikut:
$ ps -ef
$ ps -ef
……
smx 1822 1 0 11:38 00:00:49 gnome-terminal
smx 1823 1822 0 1 38 00:00:00 gnome -pty-helper
smx 1824 1822 0 11:38 pts/0 00:00:02 bash
smx 1827 1 4 11:38 ? /firefox- 3.6.18/ firefox-bin
smx 1857 1822 0 11:38 pts/1 00:00:00 bash
smx 1880 1619 0 11:38 .……
smx 11946 1824 0 21:41 pts/0 00:00:00 ps -ef
SMX 1857 0.0 0.1 6688 3644 pts/1 ss 11:38 0:00 Bash
Smx 1880 0.0 0.6 41536 1262 0? :38 0:00 update-notifier
… …
smx 11953 0.0 0.0 2716 1064 pts/0 r+ 21:42 0:00 ps -aux
Pada masa ini, jika saya ingin mematikan proses Firefox, taip sahaja terminal:
$ kill -s 9 1827
1827 ialah pid Firefox yang ditemui oleh PS di atas.
Memang mudah, tapi ada masalah kalau proses lebih sikit, tak apa kalau banyak proses, sama ada ps -ef atau ps -aux. ia akan berada dalam senarai besar maklumat proses setiap kali saya mendapati proses itu akan dibunuh dan mata saya terpesona.
Lanjutan:
Penambahbaikan 1:
Paipkan hasil pertanyaan ps ke grep untuk mencari proses yang mengandungi rentetan tertentu. Aksara paip "|" digunakan untuk memisahkan dua arahan Keluaran arahan di sebelah kiri aksara paip akan digunakan sebagai input arahan di sebelah kanan aksara paip.
Salin kod Kod adalah seperti berikut:
$ ps -ef | grep firefox
smx 12029 1824 0 21:54 pts/0 00:00:00 grep --color=auto firefox
Kali ini menyegarkan. Kemudian
$kill -s 9 1827
Penambahbaikan 2 - Gunakan pgrep:
Sebagai sebaik sahaja anda melihatnya Apakah perkara pertama yang terlintas di fikiran dengan pgrep? Betul, grep! P pgrep menunjukkan bahawa arahan ini adalah grep khusus untuk pertanyaan proses.
Salin kod Kod adalah seperti berikut:
$ pgrep firefox
Apa yang anda nampak? Betul, pid Firefox, anda perlu menaipnya semula:
$kill -s 9 1827
Penambahbaikan 3 - Gunakan pidof:
Apakah yang anda fikirkan apabila anda nampak pidof? Betul, pid xx, diterjemahkan secara literal ialah pid xx.
Salin kod Kod adalah seperti berikut:
$ pidof firefox-bin
Sedikit kelemahan berbanding dengan pgrep ialah pidof itu mesti Memberi nama penuh proses. Kemudian terdapat klise:
$kill -s 9 1827
Peningkatan 4:
$ps -ef |. 15 |. xargs kill -s 9
Output "grep firefox" ialah semua proses yang mengandungi kata kunci "firefox".
"grep -v grep" adalah untuk mengalih keluar proses yang mengandungi kata kunci "grep" daripada proses yang disenaraikan.
"cut -c 9-15" memintas aksara ke-9 hingga ke-15 baris input, yang kebetulan merupakan nombor proses pid.
Arahan xargs dalam "xargs kill -s 9" digunakan untuk menggunakan hasil output (pid) arahan sebelumnya sebagai parameter perintah "kill -s 9" dan laksanakan arahan itu. "kill -s 9" akan secara paksa membunuh proses yang ditentukan.
Tidakkah anda mahu mengadu tentang sesuatu? Ya, ia terlalu panjang
Penambahbaikan 5:
Anda tahu perintah pgrep dan pidof, mengapa anda perlu menaip rentetan yang begitu panjang!
Salin kod Kod adalah seperti berikut:
$ pgrep firefox | awk '{print $2}' |. xargs kill -9
kill: tiada proses sedemikian
Ada satu Apa yang lebih menyedihkan ialah proses itu telah ditemui dan ditamatkan dengan betul, tetapi selepas pelaksanaan , ia menggesa bahawa proses itu tidak dapat ditemui.
Fungsi awk '{print $2}' adalah untuk mencetak kandungan lajur kedua. Menurut artikel umum, anda boleh tahu bahawa output lajur kedua oleh ps adalah betul-betul pid. Lulus pid proses yang sepadan untuk membunuh sebagai parameter melalui xargs, dan bunuh proses yang sepadan.
Peningkatan 7:
Adakah anda perlu memanggil xargs setiap kali untuk lulus pid untuk membunuh? Jawapannya tidak:
Penambahbaikan 8:
Salin kod Kod adalah seperti berikut:
Penambahbaikan 9 - pkill:
Salin kod Kod adalah seperti berikut:
Penjelasan: "-9" bermaksud isyarat yang dihantar ialah 9, pkill dan kill Perbezaan pada ketika ini ialah: pkill tidak memerlukan "s", dan tahap isyarat penamatan terus mengikuti "-". Saya selalu fikir ia adalah "-s 9" sebelum ini, tetapi proses itu gagal ditamatkan setiap kali saya menjalankannya.
Atas ialah kandungan terperinci Bagaimana untuk mematikan proses dalam linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!