จะค้นหา Process ID (PID) Linux ทำงานอยู่ได้อย่างไร

 

เปิด 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 ความคิดเห็น

Earn money online

รวมเทคหาเงินออนไลย์ - หารวยได้เสริม

Is the Designer Facing Extinction?