วิธีค้นหาและฆ่ากระบวนการทำงานใน Linux
การจัดการกระบวนการถือเป็นส่วนสำคัญของการดูแลระบบใน Linux และรวมถึงการฆ่ากระบวนการโดยใช้คำสั่ง kill
ในวิธีการนี้ เราจะดูการฆ่ากระบวนการที่มีประสิทธิผลน้อยลงหรือไม่พึงประสงค์บนระบบ Linux ของคุณ
กระบวนการใน Linux คืออะไร?
กระบวนการบนระบบ Linux อาจเป็นเหตุการณ์ที่รันอยู่ของแอปพลิเคชันหรือโปรแกรม คุณยังสามารถอ้างถึงกระบวนการต่างๆ ว่าเป็นงานที่ดำเนินการในระบบปฏิบัติการ
เมื่อกระบวนการกำลังทำงาน กระบวนการจะเปลี่ยนจากสถานะหนึ่งไปอีกสถานะหนึ่ง และกระบวนการสามารถอยู่ในสถานะใดสถานะหนึ่งต่อไปนี้:
- กำลังดำเนินการ: หมายถึงกระบวนการกำลังดำเนินการหรือเพิ่งตั้งค่าให้ดำเนินการ
- กำลังรอ: หมายความว่ากระบวนการกำลังรอเหตุการณ์หรือทรัพยากรระบบเพื่อดำเนินงาน
กระบวนการรอภายใต้ Linux มีสองประเภท ได้แก่ แบบขัดจังหวะ และ แบบขัดจังหวะ
กระบวนการรอที่สัญญาณสามารถขัดจังหวะได้เรียกว่า อินเทอร์รัปต์ ในขณะที่กระบวนการรอที่รอโดยตรงบนสภาพของฮาร์ดแวร์และไม่สามารถถูกขัดจังหวะได้ภายใต้เงื่อนไขใดๆ เรียกว่า อินเทอร์รัปต์
- หยุด: หมายความว่ากระบวนการหยุดแล้วโดยใช้สัญญาณ
- ซอมบี้: หมายถึงกระบวนการหยุดกะทันหันและตายไปแล้ว
ด้วยภาพรวมโดยย่อนี้ เราจะมาดูวิธีการฆ่ากระบวนการในระบบ Linux กัน เราได้กล่าวถึงบทความบางส่วนเกี่ยวกับวิธีการฆ่า Linux ที่รันกระบวนการของเราโดยใช้ kill, pkill, killall และ xkill คุณสามารถอ่านได้ด้านล่าง
- คำแนะนำในการจัดการกระบวนการ Linux โดยใช้คำสั่ง Kill, Pkill และ Killall
- วิธีฆ่ากระบวนการ Linux ที่ไม่ตอบสนองโดยใช้คำสั่ง Xkill
เมื่อฆ่ากระบวนการ คำสั่ง kill ใช้เพื่อส่งสัญญาณที่มีชื่อไปยังกระบวนการที่มีชื่อหรือกลุ่มของกระบวนการ สัญญาณเริ่มต้นคือสัญญาณ TERM
โปรดจำไว้ว่าคำสั่ง kill อาจเป็นฟังก์ชันในตัวในเชลล์สมัยใหม่จำนวนมากหรือภายนอกที่อยู่ที่ /bin/kill
วิธีค้นหากระบวนการ PID ใน Linux
ใน Linux ทุกกระบวนการในระบบจะมี PID (หมายเลขประจำตัวกระบวนการ) ซึ่งสามารถใช้เพื่อปิดกระบวนการได้
คุณสามารถระบุ PID ของกระบวนการใดๆ ได้โดยใช้คำสั่ง pidof ดังนี้:
pidof firefox
pidof chrome
pidof gimp-2.8
วิธีฆ่ากระบวนการใน Linux
เมื่อคุณพบกระบวนการ PID แล้ว เรามาดูวิธีการฆ่ากระบวนการกันดีกว่า ในตัวอย่างแรกนี้ ฉันจะรับ PID ของกระบวนการก่อนแล้วจึงส่งสัญญาณไป
ฉันต้องการฆ่ากระบวนการ gimp ดังนั้นฉันจะทำดังนี้:
pidof gimp-2.8
kill 9378
หากต้องการตรวจสอบว่ากระบวนการถูกหยุดทำงาน ให้รันคำสั่ง pidof และคุณจะไม่สามารถดู PID ได้
pidof gimp-2.8
คุณยังสามารถส่งสัญญาณที่มีชื่อไปยังกระบวนการได้โดยใช้ชื่อสัญญาณหรือหมายเลขดังต่อไปนี้:
pidof vlc
kill -SIGTERM 9541
pidof vlc
การใช้หมายเลขสัญญาณเพื่อฆ่ากระบวนการ:
pidof banshee
kill -9 9647
pidof banshee
ในตัวอย่างข้างต้น หมายเลข 9
คือหมายเลขสัญญาณสำหรับสัญญาณ SIGKILL
วิธีฆ่า PID หลายกระบวนการใน Linux
หากต้องการฆ่ามากกว่าหนึ่งกระบวนการ ให้ส่ง PID(s) ไปยังคำสั่ง kill ดังนี้:
pidof gimp-2.8
pidof vlc
pidof banshee
kill -9 9734 9747 9762
สรุป
มีวิธีอื่นๆ มากมายในการฆ่ากระบวนการใน Linux ตัวอย่างเล็กๆ น้อยๆ เหล่านี้จะช่วยให้คุณเห็นภาพรวมของกระบวนการฆ่าได้ โปรดแจ้งให้เราทราบว่าคุณฆ่ากระบวนการใน Linux อย่างไร และบอกวิธีอื่น ๆ ถ้ามีทางความคิดเห็น