เมื่อพวกเขากำลังทำงาน
ดูเหมือนว่าคุณก็สามารถทำเช่นนี้กับและการส่งออกของkill
jobs -p
ตัวอย่าง
$ sleep 1000 &
[1] 21952
$ sleep 1000 &
[2] 21956
$ sleep 1000 &
[3] 21960
ตอนนี้ฉันมีงานปลอม 3 งานที่ทำงานอยู่
$ jobs
[1] Running sleep 1000 &
[2]- Running sleep 1000 &
[3]+ Running sleep 1000 &
ฆ่าพวกเขาทั้งหมดเช่น:
$ kill $(jobs -p)
[1] Terminated sleep 1000
[2]- Terminated sleep 1000
[3]+ Terminated sleep 1000
ยืนยันว่าพวกเขาทั้งหมดหายไป
$ jobs
$
เมื่อพวกเขาหยุด
หากคุณมีงานที่หยุดไม่ทำงานคุณทำเช่นนี้แทน
ตัวอย่าง
$ kill $(jobs -p)
$ jobs
[1]+ Stopped sleep 1000
[2]- Stopped sleep 1000
[3] Stopped sleep 1000
ตกลงเพื่อที่ไม่ได้ฆ่าพวกเขา แต่นั่นเป็นเพราะกระบวนการฆ่าสัญญาณไม่สามารถจัดการได้ด้วยตัวเองมันหยุด ดังนั้นบอกให้ระบบปฏิบัติการทำการฆ่าแทน นั่นคือสิ่งที่มี-9
ไว้สำหรับ
$ kill -9 $(jobs -p)
[1]+ Killed sleep 1000
[2]- Killed sleep 1000
[3] Killed sleep 1000
มันดีกว่า.
$ jobs
$
เมื่อบางคนทำงานและบางคนก็หยุด
หากคุณมีกระบวนการหลายอย่างที่บางกระบวนการหยุดทำงานและบางกระบวนการกำลังทำงานอยู่คุณสามารถทำkill
ตามด้วย a kill -9
ก่อน
$ kill $(jobs -p); sleep <time>; \
kill -18 $(jobs -p); sleep <time>; kill -9 $(jobs -p)
ขยายเวลาเล็กน้อยหากคุณต้องการมากขึ้นเพื่อให้กระบวนการหยุดตนเองก่อน
สัญญาณ
ทั้ง HUP (-1) หรือ SIGTERM (-15) ที่จะฆ่าจะสำเร็จ แต่ทำไม นั่นเป็นเพราะสัญญาณเหล่านี้มีความอ่อนโยนกว่าในแง่ที่ว่าพวกเขากำลังบอกให้แอปพลิเคชั่นยุติการทำงาน แต่เนื่องจากแอปพลิเคชันอยู่ในสถานะหยุดทำงานจึงไม่สามารถประมวลผลสัญญาณเหล่านี้ได้ ดังนั้นคุณเพียงแค่ใช้หลักสูตร SIGKILL (-9)
คุณสามารถมองเห็นสัญญาณทั้งหมดที่ให้กับkill
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
man 7 signal
หากคุณต้องการที่จะเรียนรู้มากยิ่งขึ้นเกี่ยวกับสัญญาณต่างๆผมขอแนะนำให้หนึ่งไปดูที่หน้าสัญญาณมนุษย์
+
สัญลักษณ์สำหรับกระบวนการแรกและ-
สัญลักษณ์สำหรับกระบวนการที่สองและไม่มีสัญลักษณ์ในกระบวนการที่สาม