ขณะทำงานบน Linux บางครั้งโปรแกรมอาจค้างหรือใช้ทรัพยากร CPU และหน่วยความจำสูงผิดปกติ สามารถแก้ไขได้ด้วยคำสั่ง ps (Process Status) เพื่อดูรายการกระบวนการที่กำลังทำงานและ PID ของแต่ละกระบวนการ จากนั้นจึงสามารถหยุดกระบวนการที่ใช้ทรัพยากรมากเกินไปได้
การใช้คำสั่ง ps พื้นฐาน
ใช้คำสั่ง ps โดยไม่มีตัวเลือก จะแสดงข้อมูล 4 คอลัมน์:
- PID: รหัสเฉพาะของกระบวนการที่ระบบกำหนด ใช้ค่านี้เพื่อหยุดกระบวนการ
- TTY: เทอร์มินัลที่เริ่มกระบวนการ
- TIME: เวลา CPU ทั้งหมดที่กระบวนการใช้
- CMD: คำสั่งที่สร้างกระบวนการ
หมายเหตุ: การใช้คำสั่ง ps โดยไม่มีตัวเลือกจะแสดงข้อมูลน้อย ดังนี้คือตัวเลือกที่มีประโยชน์กว่า
1. แสดงกระบวนการของผู้ใช้ทั้งหมด
โปรแกรมบางตัวสร้างผู้ใช้เพิ่มเติมเพื่อรันกระบวนการ ใช้ตัวเลือก -e เพื่อแสดงกระบวนการของทุกผู้ใช้:
ps -e
2. แสดงกระบวนการพร้อมข้อมูลเพิ่มเติม
ใช้ตัวเลือก ef เพื่อดูข้อมูลละเอียดขึ้น:
ps -ef
จะแสดง UID, PID, PPID, C, STIME, TTY, TIME, CMD
3. กรองกระบวนการตาม PID
หากรู้ PID ของกระบวนการที่ต้องการ ใช้แฟล็ก -p รองรับหลาย PID คั่นด้วยคอมม่า:
ps -ef -p 1234,5678,9012
4. แสดงกระบวนการที่เป็นของผู้ใช้เฉพาะ
ใช้ตัวเลือก u ตามด้วยชื่อผู้ใช้:
ps -u userName
5. แสดงกระบวนการที่ทำงานอยู่ (Active)
ใช้ตัวเลือก ax:
ps -ax
จะแสดงคอลัมน์ STAT แสดงสถานะกระบวนการ
6. แสดงกระบวนการ Active พร้อมข้อมูลผู้ใช้
ใช้แฟล็ก -aux (ตัวเลือกยอดนิยม):
ps -aux
แสดง %CPU, %MEM, VSZ, RSS, START, COMMAND ช่วยระบุกระบวนการที่ใช้ทรัพยากรสูง
7. กรองกระบวนการตามชื่อโปรแกรม
ใช้ grep ร่วมกับ ps:
ps -aux | grep docker
หรือใช้ตัวเลือก -C กรองตามชื่อโดยตรง:
ps -C name
8. แสดงคอลัมน์ที่กำหนดเอง
ใช้แฟล็ก -o ระบุคอลัมน์ที่ต้องการ:
ps -e -o pid,uname,pcpu,pmem,comm
9. แสดงผลแบบ階層樹 (Hierarchical Tree)
ps -e --forest
แสดงโครงสร้างต้นไม้ ASCII ใช้ -H แทน --forest เพื่อซ่อนสาขา
10. แสดงเธรดของกระบวนการ
ps -p 4041 -L
แฟล็ก -L เปิดโหมดแสดงเธรด เหมาะสำหรับติดตามเธรดของกระบวนการเฉพาะ
11. แสดงกระบวนการของ Root ทั้งหมด
ps -f -U root -u root
ค้นหากระบวนการที่รันด้วย real และ effective root ID แสดงแบบเต็มด้วย -f
ใช้คำสั่ง kill เพื่อหยุดกระบวนการ
เมื่อพบกระบวนการที่ผิดปกติ ใช้คำสั่ง kill ส่งสัญญาณหยุดการทำงาน หากโปรแกรมค้างมักต้องใช้ตัวเลือก -9 เพื่อบังคับหยุด:
kill -9 PID
ข้อควรระวัง: ผลลัพธ์ของ ps เป็นภาพถ่ายชั่วขณะ (snapshot) ไม่ได้อัปเดตอัตโนมัติเหมือน htop อาจต้องรันหลายครั้งเพื่อดูภาพชัดเจน สำหรับมุมมองเรียลไทม์ แนะนำให้ใช้ htop หรือ top แทน