เปิด Terminal และเรียกใช้ ps ax | grep foo โดยที่ foo เป็นชื่อของโปรแกรมที่ไม่ตอบสนอง สิ่งนี้ควรส่งคืนบรรทัดของเอาต์พุตที่มีลักษณะดังนี้
$ ps ax | grep firefox
2222 ? S 0:00 /bin/sh /usr/lib/firefox-3.6.9/firefox
2231 ? Sl 514:36 /usr/lib/firefox-3.6.9/firefox-bin
30290 pts/2 S+ 0:00 grep --color=auto firefox
ฟิลด์แรกของแต่ละบรรทัดของเอาต์พุตคือตัวเลขซึ่งแสดงถึง ID กระบวนการของโปรแกรมที่จับคู่โดยgrep(คุณสามารถละเว้นฟิลด์สุดท้ายซึ่งแสดงถึงgrepตัวเองได้อย่างปลอดภัย
หากต้องการหยุดกระบวนการที่ละเมิด ให้ทำ: kill pidโดยที่ pid คือ ID กระบวนการของโปรแกรม คุณอาจต้องใช้วิจารณญาณของคุณว่าแมตช์ใดที่ต้องมีการkillแก้ไขหรือคุณสามารถใช้topแทนได้ การใช้killด้วยตัวเองจะส่ง SIGTERM ซึ่งคุณควรลองก่อนเพราะจะช่วยให้โปรแกรมสามารถล้างข้อมูลหลังจากตัวเองได้อย่างเหมาะสม หาก SIGTERM ล้มเหลว ให้ลองใช้ SIGHUP ซึ่งเป็นยาที่แข็งแรงกว่า kill -HUP pid: หากสิ่งอื่นล้มเหลว ให้ส่ง SIGKILL แต่คุณควรทำเช่นนั้นเป็นทางเลือกสุดท้าย เพราะ SIGKILL ทำให้เคอร์เนลยุติกระบวนการทันทีโดยไม่สามารถล้างข้อมูลได้ ซึ่งในบางครั้งอาจส่งผลให้เกิดความเสียหายของข้อมูลหรือปัญหาอื่นๆ อีกครั้ง ส่ง SIGKILL เป็นทางเลือกสุดท้ายเท่านั้น ในการทำเช่นนั้น ทำ kill -KILL pidหรือ kill -9 pid.
หากคุณกำลังใช้งานส่วนต่อประสานกราฟิก แน่นอนว่าคุณไม่จำเป็นต้องโง่เขลากับบรรทัดคำสั่งที่บ้าๆบอ ๆ นี้เพื่อทำงานให้เสร็จ เพียงเปิด "การตรวจสอบระบบ" ไปที่แท็บกระบวนการ เลือกกระบวนการที่คุณต้องการหยุด (หืม เป็นอันที่ใช้ CPU 90% ได้หรือไม่) แล้วคลิกขวา เนื่องจากกระบวนการหยุดทำงานไปแล้ว (นั่นคือปัญหาใช่ไหม) เลือก End Process หรือ Kill Process จากเมนูผลลัพธ์
0 ความคิดเห็น