Wednesday, May 20, 2009

Search and Kill process on linux any distro

  • ปกติ ubuntu ก็ไม่ค่อยกิ๊กก๊อกอยู่แหละ นอกจากแรมหมดจริงๆ swap ก็ยังไม่พอ
  • น้าน นาน เป็นที แต่หลังๆ ไม่ค่อยเป็นเท่าใหร่
  • คำสั่งสำหรับค้นหา และ ฆ่าโพรเซส เวลาระบบมีปัญหาลืมทุกที
  • ต้องบันทึกไว้เป็นโพส หนึ่งเลยจะได้กลับมาดูและ จำได้

สมมุติ: เราเปิด totem ขึ้นมา แล้วเครื่องเราดันกิ๊กก๊อก ค้างซะงั้นทำอาไรไม่ได้เลย
แล้วเราจะไงดี ? เราชาว linux รู้กันอยู่ว่า

Terminal structure (teletypewriter)
- tty1 to tty7 (Desktop)
- By press Ctrl + Alt + F1 to F7

ปัญหา: shell 7 ที่เป็นแบบกราฟฟิคมันค้าง จะเปิด System Monitor มาปิดโพรเซสก็ไม่ได้
วิธีแก้ปัญหา: เปลี่ยนไป shell อื่นสิ (ctrl + alt + [f1 to f6]) แล้วก็ฆ่าโพรเซสผ่าน shell นั้นเลยจบ
ค้นหาโพรเซส: ตามตัวอย่างที่สมมุติคือเปิด totem แล้วดันเจ๊ง เราต้องการฆ่าโพรเซสนี่อ่ะ จะทำไง

1. ค้นหาโพรเซสไอดีก่อนเลยด้วยคำสั่งประมาณเนี๋ย ps -aux คำสั่งนี่จะแสดงโพรเซสที่กำลังทำงานอยู่ น่าจะคล้ายกับคำสั่ง tasklist บน windows อ่ะนะ เรามานั่งไรหาคงไม่ไหวแน่ๆ ใช้ ไปป์ ( | ) และ grep ช่วยดิ
ps aux|grep "totem" หรือ ps -aux | grep "totem"
  • สำคัญอย่าลืมเคาะ space bar ระหว่าง grep กับคำค้นเด้อ และนี่คือ ตัวอย่างผลลัพธ์ที่ได้มา
  • คำสั่ง pattern ก็ประมาณเนี๋ย ps -aux | grep "คำค้นประมาณชื่อโปรแกรมนั่นเอง"
jui 5634 9.3 1.8 74120 37556 ? Sl 21:57 0:01 totem
jui 5643 0.0 0.0 3336 804 pts/0 S+ 21:58 0:00 grep totem
  • ตัวแรกน่าจะเป็นประมาณจะบอกว่า user คนใหนในระบบเป็นคนเรียกโปรแกรมนั้น
  • ตัวที่สองนี่อ่ะ สำคัญ คือ โพรเซสไอดี นั่นเอง (pid)
  • โดดไปตัวสุดท้ายเลย (ตัวอื่นไม่รู้หว่า) ชื่อโพรเซส ไง
  • จากตัวอย่างจากผลลัพธ์ บรรทัดแรกนั่นแหละคือ ที่เราต้องทำลาย ส่วนบรรทัดที่สองของผลลัพ์ เป็นโพรเซสของการค้นหา เราเองนั่นแหละ ซึ่งไม่ใช่สิ่งที่เราต้องไปลบหรือ อาไรเพราะเค้าจบการทำงานไปแหละ

2. เมื่อเราทราบว่าโพรเซสไอดีของ totem ที่ค้างเนี๋ย คือ หมายเลขอาไร ในที่นี่คือ 5634
kill 5634
  • pattern คำสั่งประมาณ kill [pid]


Note
  • ทดสอบ kill 5643 ผลลัพธ์ได้งี้
  • bash: kill: (5643) - No such process
  • ไม่พบโพรเซสเลย เห็นปะ เพราะ grep จบการทำงานไปแหละ
  • ไม่เข้าใจคำสั่งใหน ถามพี่ man หรือ --help น่าจะดีกว่า
  • ถ้า windows มันกิ๊กก๊อกมั่งอ่ะ ทำแบบเนี๋ยไม่ได้นะเนี๋ย รีบูตอย่างเดียวอ่ะ ทำเป็นแค่เนี๋ย
  • หรือ ไม่ก็สีน้ำเงิน และ ตัวหนังสือเต็มจออนี่หนักหน่อย
  • ใครรู้มั่งเวลา windows ค้าง ทำอาไรไม่ได้เลย alt + ctrl + del ก็ไม่มาช่วย จะทำไงดีเรา ?
  • แต่ถ้าเป็นเหตุการปกติเราสามารถสั่งงี้ได้ ค้นหาโพรเซส tasklist | find "ชื่อโปรแกรม"
  • ตัวอย่าง tasklist | find "winamp"
  • taskkill /PID [หมายเลข process id] , ตัวอย่าง taskkill /PID 827

Related

Reference

No comments:

Post a Comment