มีเหตุผลสามประการว่าทำไม kill -9 จะไม่ฆ่ากระบวนการ
(หน้าคนแก่ระบุว่าสิ่งนี้เป็น "ฆ่าด้วยอคติอย่างยิ่ง" กระบวนการไม่สามารถหลีกเลี่ยง -9 ได้ แต่ทำได้เพียงชะลอการตายของมันเท่านั้น)
คุณสามารถตรวจสอบกระบวนการกับ ps -O สถิติ -p 1234
ตัวอย่างเช่น. ตรวจสอบคอลัมน์สถานะ (S):
เหตุผลสามประการที่ทำให้กระบวนการไม่ตายทันทีตั้งแต่ -9 คือ:
- มันตายแล้ว -- มันเป็นซอมบี้ (status=Z) มันจะหายไปเมื่อพาเรนต์รอมัน (และรวบรวมซอมบี้) หรือโปรเซสพาเรนต์ตายเอง
- มันติดอยู่ในเครื่องรอ (สถานะ=D) วิธีเดียวที่จะกำจัดสิ่งเหล่านี้คือให้อุปกรณ์ปล่อยหรือรีบูต การดำเนินการนี้อาจต้องรอหรือใช้อุปกรณ์ทางกายภาพ หรือวิธีอื่นนอกแบนด์เพื่อ "เตะ" อุปกรณ์ที่ติดอยู่ (และในบางกรณีที่พบไม่บ่อย การรีบูตจะล้มเหลวและหยุดทำงาน และคุณจะต้องเปิดเครื่องใหม่)
- มันถูกระงับ (สถานะ = T) ซึ่งในกรณีนี้ kill -9 จะฆ่ามัน แต่จะไม่ตายจริง ๆ จนกว่ากระบวนการจะกลับมาทำงานต่อ (kill -CONT)
คำสั่ง kill ส่งคืนบางสิ่งจริง ๆ แม้ว่าจะสำเร็จ แต่จะไม่ส่งคืน พิมพ์ อะไรก็ตาม. คำสั่งทั้งหมดมีค่าตอบแทน สามารถตรวจสอบได้ด้วย ก้อง $?
ทันทีหลังจากรันคำสั่ง ถ้าค่าที่ส่งกลับเป็น 0 แสดงว่าการฆ่าสำเร็จและไม่มีอะไรพิมพ์ออกมา ค่าอื่นๆ เป็นข้อผิดพลาด และควรพิมพ์ข้อผิดพลาดนั้น ข้อผิดพลาดที่เป็นไปได้อาจถูกปฏิเสธการอนุญาต (หรือการดำเนินการไม่ได้รับอนุญาต) และไม่มีกระบวนการดังกล่าว pkill มีข้อผิดพลาดเล็กน้อยที่น่าสนใจกว่าเล็กน้อย