Saat mereka berlari
Sepertinya Anda bisa melakukan ini dengan kill
dan output dari jobs -p
.
Contoh
$ sleep 1000 &
[1] 21952
$ sleep 1000 &
[2] 21956
$ sleep 1000 &
[3] 21960
Sekarang saya memiliki 3 pekerjaan palsu yang sedang berjalan.
$ jobs
[1] Running sleep 1000 &
[2]- Running sleep 1000 &
[3]+ Running sleep 1000 &
Bunuh mereka semua seperti ini:
$ kill $(jobs -p)
[1] Terminated sleep 1000
[2]- Terminated sleep 1000
[3]+ Terminated sleep 1000
Mengkonfirmasikan mereka semua pergi.
$ jobs
$
Ketika mereka berhenti
Jika Anda memiliki pekerjaan yang dihentikan, bukan menjalankan Anda sebagai gantinya.
Contoh
$ kill $(jobs -p)
$ jobs
[1]+ Stopped sleep 1000
[2]- Stopped sleep 1000
[3] Stopped sleep 1000
OK jadi itu tidak membunuh mereka, tapi itu karena sinyal mematikan tidak dapat ditangani oleh proses itu sendiri, itu berhenti. Jadi beritahu OS untuk melakukan pembunuhan sebagai gantinya. Itu untuk apa -9
.
$ kill -9 $(jobs -p)
[1]+ Killed sleep 1000
[2]- Killed sleep 1000
[3] Killed sleep 1000
Itu lebih baik.
$ jobs
$
Ketika beberapa berjalan dan beberapa dihentikan
Jika Anda memiliki kantong campuran proses di mana beberapa berhenti dan beberapa berjalan Anda dapat melakukan yang kill
pertama diikuti oleh a kill -9
.
$ kill $(jobs -p); sleep <time>; \
kill -18 $(jobs -p); sleep <time>; kill -9 $(jobs -p)
Perpanjang waktu sedikit jika Anda membutuhkan lebih banyak untuk memungkinkan proses untuk menghentikan diri mereka sendiri terlebih dahulu.
Sinyal
HUP (-1) atau SIGTERM (-15) untuk dibunuh tidak akan berhasil. Tapi kenapa? Itu karena sinyal-sinyal ini lebih ramah dalam arti mereka memberitahu aplikasi untuk menghentikannya sendiri. Tetapi karena aplikasi dalam keadaan berhenti itu tidak dapat memproses sinyal-sinyal ini. Jadi Anda hanya menggunakan SIGKILL (-9).
Anda dapat melihat semua sinyal yang kill
disediakan kill -l
.
$ kill -l | column -t
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
Jika Anda ingin mempelajari lebih lanjut tentang berbagai sinyal, saya sangat menyarankan seseorang untuk melihat halaman manual sinyal man 7 signal
,.
+
simbol untuk proses pertama dan-
simbol untuk proses kedua dan tidak ada simbol di proses ketiga?