แม้ OS แข็งแกร่งอย่าง Linux ก็บางครั้งเจอปัญหาทำให้ apps หรือ programs ค้าง (freeze)
มีหลายวิธี kill หรือ quit โปรแกรมค้างบน Linux บทความนี้อธิบายวิธีการ
ใช้คำสั่ง Kill
ก่อนใช้ kill command ระบบต้องรู้ Process ID (PID) ของ unresponsive program
PID คือหมายเลขระบุ process แต่ละตัวอัตโนมัติตอนสร้างบน Linux OS ใดๆ ข้อดี: ทำงานบน Linux systems ทุกตัว
หา Process & PID
ถ้าไม่รู้ว่าประมวลผลไหนค้างบน Linux มี 2 tools ช่วยหา: top และ ps
Top คือ command line-based system monitor จาก command line พิมพ์:
$ top
Screenshot ด้านบนแสดง info เยอะ ตัวอย่าง Chrome เป็น frozen program
เห็น 4 instances ของ Chrome รันอยู่ PIDs:
- 3827
- 3919
- 10764
- 11679
ระบุ instance Chrome ที่อยาก kill ใช้ ps command และ grep filter output
คำสั่งด้านล่างแสดง running processes ที่เกี่ยวกับ Chrome:
ps aux | grep chrome
Kill The Process
ตอนนี้มี 2 ชิ้นข้อมูล kill frozen process บน Linux: name และ ID ใช้คำสั่ง:
- kill – Kill process by ID
- killall – Kill process by name
มี signals อื่นส่งให้ทั้งคู่ ขึ้นกับ results ที่อยากได้
ตัวอย่าง: อยาก kill unresponsive process และ restart ใช้ HUP (hang up) signal
Kill signals อื่นๆ:
- SIGSTOP stop the process
- SIGNINT interrupt the keyboard
- SIGKILL kill the signal
จาก ps command ข้างบน PIDs ของ Chrome instances: 3827, 3919, 10764, 11679
ส่ง kill signal รันคำสั่ง kill ทั้ง 4 instances Chrome สำเร็จ:
- kill -9 3827
- kill -9 3919
- kill -9 10764
- kill -9 11679
หรือ single command ด้วย killall ส่ง signal เดียวกัน:
killall -9 chrome
คลิก X
Unresponsive programs และ apps มักมี grayed-out buttons หรือ options ที่ไม่ทำงาน บางครั้งย้าย app window ไม่ได้
Easiest solution: คลิก X button มุมบน ขึ้นกับ OS ปุ่มอาจซ้ายหรือขวาบน
หลังคลิก X จะเห็น dialog box 2 options: Wait หรือ Force Quit จบโปรแกรม คลิก Force Quit
Kill Linux Process บน Linux ด้วย System Monitor
Default System monitor ใน Ubuntu เรียกว่า Gnome ให้ insights ทุก processes รันบน Ubuntu Linux OS
Users ทำ tasks ต่างๆ ด้วย Graphical User Interface (GUI) รวม: Stop, Continue, และ Kill
ถ้าระบบไม่มี Gnome system monitor app ติดตั้งตามขั้นตอน ทำงานได้กับ active versions ของ Ubuntu Linux, Linux Mint และ Debian
- ใช้ Terminal keyboard shortcut CTRL+ALT+T คำสั่ง download และ install Gnome System monitor:
sudo apt-get install gnome-system-monitor
- Open system monitor ด้วย Command Terminal:
gnome-system-monitor
- หรือ GUI: ไป Applications พิมพ์ system monitor ใน search box คลิก icon เปิด
- Open System Monitor, browse Processes column หา unresponsive/frozen program select และ right-click
จะเห็น options:
- End Process terminate application พร้อม clean temporary files
- Stop Process pause process ให้ continue working later
- Kill Process extreme option จะ quit frozen program ถ้า end ไม่ได้
ใช้คำสั่ง xkill
Xkill เป็น pre-installed Ubuntu kill utility force kill unresponsive Linux process Tool มา pre-installed ใน Ubuntu
ติดตั้งผ่าน Terminal บน distributions อื่น:
sudo apt install xorg-xkill
รันพิมพ์ xkill เมาส์จะกลายเป็น skull หรือ x Left-click บน frozen program ปิดมัน
ใช้ pgrep & pkill
Linux systems หลายตัวมี shortcuts pkill และ pgrep ทำ tasks เหมือน kill และ ps ข้างบน
Pgrep แสดง process name และ ID ตัวอย่าง pgrep chrome ดู process ID ของ Chrome ที่รัน ใช้ ID นั้นกับ kill command
pkill 7012
หรือ skip step นี้ คำสั่ง kill all instances of Chrome:
pkill chrome
Solution นี้ดีถ้ามีเพียงหนึ่ง instance ของ application รัน แตถ้ามี several windows ของ program เดียวกัน อยาก kill แค่ตัวเดียว ใช้ XKill แทน
ตอนโปรแกรมค้าง restart system ไม่ใช่ most convenient option เสมอไป โดยเฉพาะถ้าทำงานหลาย projects พร้อมกัน และยังไม่ save work
ลอง options ด้านบน alternative ที่ easily และ quickly exit frozen หรือ non-responsive programs บน Linux อย่างปลอดภัย