วิธีฆ่ากระบวนการโดยใช้ Linux
บ่อยครั้งที่โปรแกรมหยุดทำงาน ซึ่งในกรณีนี้คุณต้องมีวิธีในการฆ่ามัน ลินุกซ์ เสนอแนวทางต่างๆ สำหรับการบังคับปิดโปรแกรมจากเชลล์
วิธีใช้คำสั่ง 'killall'
NS killall คำสั่งฆ่ากระบวนการทั้งหมดตามชื่อ ซึ่งหมายความว่าหากคุณมีโปรแกรมเดียวกันสามเวอร์ชันทำงานอยู่ คำสั่ง killall จะฆ่าทั้งสามเวอร์ชัน
ตัวอย่างเช่น เปิดโปรแกรมขนาดเล็ก เช่น โปรแกรมดูรูปภาพ ตอนนี้เปิดสำเนาอื่นของโปรแกรมดูรูปภาพเดียวกัน ตัวอย่างนี้ใช้ Xviewer ซึ่งเป็นโคลนของ ตาของ Gnome.
เปิดเทอร์มินัลแล้วพิมพ์คำสั่งต่อไปนี้:
killall xviewer
อินสแตนซ์ทั้งสองของโปรแกรมปิด
ฆ่ากระบวนการที่แน่นอน
คำสั่ง killall อาจให้ผลลัพธ์ที่แปลก หากคุณมีชื่อคำสั่งที่มีความยาวมากกว่า 15 อักขระ คำสั่ง killall จะทำงานเฉพาะกับอักขระ 15 ตัวแรกเท่านั้น ดังนั้น หากคุณมีสองโปรแกรมที่ใช้อักขระ 15 ตัวแรกร่วมกัน ทั้งสองโปรแกรมจะถูกยกเลิก แม้ว่าคุณจะต้องการฆ่าเพียงตัวเดียว
ในการแก้ไขปัญหานี้ คุณสามารถระบุสวิตช์ต่อไปนี้ ซึ่งจะฆ่าเฉพาะไฟล์ที่ตรงกับชื่อเท่านั้น
killall -e
ละเว้นกรณีเมื่อฆ่าโปรแกรม
เพื่อให้แน่ใจว่าคำสั่ง killall ละเว้นตัวพิมพ์ของชื่อโปรแกรมที่คุณระบุ ให้ใช้คำสั่งต่อไปนี้:
killall -I
killall --ignore-case
ฆ่าโปรแกรมทั้งหมดในกลุ่มเดียวกัน
เมื่อคุณเรียกใช้คำสั่งเช่นคำสั่งต่อไปนี้ จะสร้างสองกระบวนการ:
ps -ef | น้อย
หนึ่งคำสั่งสำหรับ ps -ef ส่วน ซึ่งแสดงรายการกระบวนการที่ทำงานอยู่ทั้งหมดบนระบบของคุณ และผลลัพธ์จะถูกไพพ์ไปยัง คำสั่งน้อยลง. ทั้งสองโปรแกรมอยู่ในกลุ่มเดียวกัน ซึ่งก็คือ ทุบตี.
หากต้องการฆ่าทั้งสองโปรแกรมพร้อมกัน ให้รันคำสั่งต่อไปนี้:
killall -g
ตัวอย่างเช่น หากต้องการฆ่าคำสั่งทั้งหมดที่รันใน bash shell ให้ทำดังนี้:
killall -g bash
ในการแสดงรายการกลุ่มที่กำลังทำงานอยู่ทั้งหมด ให้รันคำสั่งต่อไปนี้:
ps -g
รับการยืนยันก่อนการฆ่าโปรแกรม
แน่นอน คำสั่ง killall เป็นคำสั่งที่ทรงพลัง และคุณคงไม่อยากฆ่ากระบวนการที่ไม่ถูกต้องโดยไม่ได้ตั้งใจ
เมื่อคุณใช้สวิตช์ต่อไปนี้ ระบบจะถามว่าคุณแน่ใจหรือไม่ก่อนที่แต่ละกระบวนการจะถูกฆ่า
killall -i
ฆ่ากระบวนการที่ทำงานมาเป็นระยะเวลาหนึ่ง
ลองนึกภาพว่าคุณใช้งานโปรแกรมและใช้เวลานานกว่าที่คุณคาดไว้มาก
คุณสามารถฆ่าคำสั่งด้วยวิธีต่อไปนี้:
killall -o h4
NS ชม ในคำสั่งข้างต้นหมายถึงชั่วโมง—คำสั่งนี้จะฆ่ากระบวนการที่ทำงานเป็นเวลาสี่ชั่วโมงหรือนานกว่านั้น
ระบุเหตุการณ์สำคัญของเวลาอย่างใดอย่างหนึ่งต่อไปนี้:
- NS: วินาที
- NS: นาที
- ชม: ชั่วโมง
- NS: วัน
- w: สัปดาห์
- NS: เดือน
- y: ปีที่
หรือหากต้องการฆ่าคำสั่งที่เพิ่งเริ่มทำงาน ให้ใช้สวิตช์ต่อไปนี้:
killall -y h4
คราวนี้คำสั่ง killall จะฆ่าโปรแกรมทั้งหมดที่ทำงานน้อยกว่า 4 ชั่วโมง
อย่าบอกฉันเมื่อกระบวนการยังไม่ถูกฆ่า
ตามค่าเริ่มต้น หากคุณพยายามฆ่าโปรแกรมที่ไม่ได้ทำงาน คุณจะได้รับข้อผิดพลาดต่อไปนี้:
ชื่อโปรแกรม: ไม่พบกระบวนการ
หากคุณไม่ต้องการได้รับแจ้งหากไม่พบกระบวนการ ให้ใช้คำสั่งต่อไปนี้:
killall -q
การใช้นิพจน์ทั่วไป
แทนที่จะระบุชื่อของโปรแกรมหรือคำสั่ง ให้ระบุนิพจน์ทั่วไปเพื่อให้กระบวนการทั้งหมดที่ตรงกับนิพจน์ทั่วไปถูกปิดโดยคำสั่ง killall
ในการใช้นิพจน์ทั่วไปให้ใช้คำสั่งต่อไปนี้:
killall -r
ฆ่าโปรแกรมสำหรับผู้ใช้เฉพาะ
หากต้องการฆ่าโปรแกรมที่เป็นของผู้ใช้รายใดรายหนึ่ง ให้ใช้คำสั่ง -ยู สวิตซ์:
killall -u
ละเว้นชื่อโปรแกรมเพื่อยุติกระบวนการทั้งหมดของผู้ใช้นั้น
รอให้ killall เสร็จสิ้น
ตามค่าเริ่มต้น killall จะกลับไปที่เทอร์มินัลเมื่อคุณเรียกใช้ แต่คุณสามารถบังคับให้ killall ต้องรอจนกว่ากระบวนการทั้งหมดที่ระบุจะถูกปิดก่อนที่จะกลับไปที่หน้าต่างเทอร์มินัล
รันคำสั่งต่อไปนี้:
killall -w
หากโปรแกรมไม่ตาย Killall ก็ยังคงอยู่ต่อไป