Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีใช้คำสั่ง ps ใน Linux เพื่อหยุดกระบวนการทำงาน

ขณะทำงานบน 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 แทน