หลังจากที่ใช้ธรรมดาเพียงkill <some_pid>
บนระบบปฏิบัติการยูนิกซ์เป็นเวลาหลายปีที่ผ่านมาผมได้เรียนรู้pkill
จากน้องลินุกซ์เข้าใจเพื่อนร่วมงานเพื่อนร่วมงาน1
ในไม่ช้าฉันก็ยอมรับวิธี Linux การทำpgrep
และpkill
ผ่านหลายวันตลอดคืนตามเงื่อนไขการชะลอตัวและการแข่งขัน ทั้งหมดนี้เป็นเรื่องดีและดี
แต่ตอนนี้ฉันไม่เห็นอะไรkillall
เลย ดูเหมือนวิธีการพูดถึงเท่านั้นkillall
และฉันไม่แน่ใจว่านี่คือการพัฒนาแบบขนานบางอย่างหรือหากkillall
ผู้สืบทอดpkill
หรืออย่างอื่น
ดูเหมือนว่าจะทำงานเป็นเป้าหมายมากกว่าpkill
แต่ฉันแน่ใจว่าฉันทำอะไรบางอย่างหายไป
คนที่ใช้ Ubuntu / Debian-savvy 2 สามารถอธิบายได้ว่าkillall
ควรใช้เมื่อไร (หรือเพราะเหตุใด) โดยเฉพาะอย่างยิ่งถ้ามันควรจะใช้ในการตั้งค่าpkill
(เมื่อpkill
มักจะดูง่ายกว่าเพราะฉันสามารถเป็นคนจับคู่กับชื่อ
เมื่อพูดถึงkillall
ฉันไม่ได้คิดถึงคำสั่งที่ว่าในบางระบบ Unix (Solaris, AIX,?) จะฆ่ากระบวนการผู้ใช้ทั้งหมด นี่คือคำอธิบายของเวอร์ชันนั้นจากmanpage สำหรับ AIX ของ IBM :
คำสั่ง killall ยกเลิกกระบวนการทั้งหมดที่คุณเริ่มต้นยกเว้นกระบวนการที่สร้างกระบวนการ killall คำสั่งนี้ให้วิธีที่สะดวกในการยกเลิกกระบวนการทั้งหมดที่สร้างโดยเชลล์ที่คุณควบคุม เมื่อเริ่มต้นโดยผู้ใช้รูทคำสั่ง killall จะยกเลิกกระบวนการที่ยกเลิกได้ทั้งหมดยกเว้นกระบวนการที่เริ่มต้นขึ้น หากมีการระบุสัญญาณหลายสัญญาณสัญญาณสุดท้ายเท่านั้นที่มีผลบังคับใช้
1 'เพื่อนร่วมงาน' ได้รับการอัปเกรดฟรีจาก 'เพื่อนร่วมงาน' ดังนั้นอาจทำได้เช่นกัน
2ตอนแรกฉันคิดว่านี่เป็น Linux หรือ Debian แต่บางแหล่งกล่าวว่า Linux killall
นั้นมาจาก Unix ที่มี BSD ปรุงแต่ง
killall
ระบบ Solaris แบบเปิด (เก่าหรือไม่) แต่มันทำงานต่างออกไป มันฆ่าทุกอย่าง