วิธีฆ่ากระบวนการโดยใช้ 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 ก็ยังคงอยู่ต่อไป