ปล (สถานะกระบวนการ) เป็นยูทิลิตี Unix/Linux ดั้งเดิมสำหรับการดูข้อมูลเกี่ยวกับการเลือกกระบวนการที่ทำงานอยู่บนระบบ: จะอ่านข้อมูลนี้จากไฟล์เสมือนใน /proc ระบบไฟล์. เป็นหนึ่งในยูทิลิตี้ที่สำคัญสำหรับการดูแลระบบโดยเฉพาะภายใต้การตรวจสอบกระบวนการ เพื่อช่วยให้คุณเข้าใจว่าเกิดอะไรขึ้นในระบบ Linux
มีตัวเลือกมากมายสำหรับจัดการผลลัพธ์ อย่างไรก็ตาม คุณจะพบตัวเลือกจำนวนน้อยที่มีประโยชน์สำหรับการใช้งานประจำวัน
อ่านเพิ่มเติม: ทั้งหมดที่คุณต้องการรู้เกี่ยวกับกระบวนการใน Linux [คู่มือฉบับสมบูรณ์]
ในบทความนี้ เราจะดูตัวอย่างคำสั่ง ps ที่มีประโยชน์ 30 ตัวอย่างสำหรับตรวจสอบกระบวนการทำงานที่ทำงานอยู่บนระบบ Linux
สังเกตว่า ปล สร้างผลลัพธ์ด้วยบรรทัดหัวเรื่อง ซึ่งแสดงถึงความหมายของข้อมูลแต่ละคอลัมน์ คุณสามารถค้นหาความหมายของป้ายกำกับทั้งหมดบน ps หน้าคน.
1. หากคุณเรียกใช้ ps คำสั่ง โดยไม่มีข้อโต้แย้งใดๆ จะแสดงกระบวนการสำหรับเชลล์ปัจจุบัน
$ ps
2. แสดงทุกกระบวนการที่ทำงานอยู่บนระบบ Linux ในรูปแบบทั่วไป (Unix/Linux)
$ ps -A. หรือ. $ ps -e
3. แสดงกระบวนการทั้งหมดใน BSD รูปแบบ.
$ ps au. หรือ. $ ps แกน
4. หากต้องการแสดงรายการแบบเต็ม ให้เพิ่ม -NS
หรือ -NS
ธง.
$ ps -ef หรือ. $ ps -eF
5. คุณสามารถเลือกกระบวนการทั้งหมดที่คุณเป็นเจ้าของได้ (รองชนะเลิศของ ps คำสั่ง, root ในกรณีนี้) พิมพ์:
$ ps -x
6. เพื่อแสดงกระบวนการของผู้ใช้ด้วย ID ผู้ใช้จริง (RUID) หรือชื่อ ใช้ the -ยู
ธง.
$ ps -fU tecmint. หรือ. $ ps -fu 1,000.
7. เพื่อเลือกกระบวนการของผู้ใช้โดยผู้ใช้ที่มีประสิทธิภาพ NS (EUID) หรือชื่อ ใช้ the -ยู
ตัวเลือก.
$ ps -fu tecmint. หรือ. $ ps -fu 1,000.
8. คำสั่งด้านล่างช่วยให้คุณดูทุกกระบวนการที่ทำงานด้วย ราก สิทธิ์ของผู้ใช้ (ID จริง & มีผล) ในรูปแบบผู้ใช้
$ ps -U root -u root
9. หากคุณต้องการแสดงรายการกระบวนการทั้งหมดที่เป็นเจ้าของโดยกลุ่มใดกลุ่มหนึ่ง (ID กลุ่มจริง (RGID) หรือชื่อ) พิมพ์
$ ps -fG อาปาเช่ หรือ. $ ps -fG 48.
10. ในการแสดงรายการกระบวนการทั้งหมดที่เป็นเจ้าของโดยชื่อกลุ่มที่มีผล (หรือเซสชัน) ให้พิมพ์
$ ps -fg อาปาเช่
11. คุณสามารถแสดงรายการกระบวนการโดย PID ดังนี้
$ ps -fp 1178
12. เพื่อเลือกกระบวนการโดย PPID, พิมพ์.
$ ps -f --ppid 1154
13. ทำการเลือกโดยใช้ a PID รายการ.
$ ps -fp 2226,1154,1146.
14. เพื่อเลือกกระบวนการโดย tty, ใช้ -NS ธงดังต่อไปนี้
$ ps -t แต้ม/0 $ ps -t แต้ม/1. $ ps -ft tty1.
15. แผนผังกระบวนการแสดงให้เห็นว่ากระบวนการในระบบเชื่อมโยงกันอย่างไร กระบวนการที่พ่อแม่ถูกฆ่าโดย init (หรือ systemd)
$ ps -e --forest
16. คุณยังสามารถพิมพ์แผนผังกระบวนการสำหรับกระบวนการที่กำหนดเช่นนี้
$ ps -f --forest -C sshd. หรือ. $ ps -ef --forest | grep -v grep | grep sshd
17. หากต้องการพิมพ์เธรดทั้งหมดของกระบวนการ ให้ใช้ปุ่ม -L
ธงนี้จะแสดง LWP (กระบวนการที่มีน้ำหนักเบา) เช่นเดียวกับ NLWP (จำนวนกระบวนการที่มีน้ำหนักเบา) คอลัมน์
$ ps -fL -C httpd.
ใช้ -o หรือ -รูปแบบ ตัวเลือก ps ช่วยให้คุณสร้างรูปแบบเอาต์พุตที่ผู้ใช้กำหนดดังที่แสดงด้านล่าง
18. ในการแสดงรายการตัวระบุรูปแบบทั้งหมด ให้รวม หลี่
ธง.
$ PS L.
19. คำสั่งด้านล่างช่วยให้คุณดู PID, PPIDชื่อผู้ใช้และคำสั่งของกระบวนการ
$ ps -eo pid, ppid, ผู้ใช้, cmd
20. ด้านล่างนี้เป็นอีกตัวอย่างหนึ่งของรูปแบบเอาต์พุตที่กำหนดเองซึ่งแสดงกลุ่มระบบไฟล์ ค่าที่ดี เวลาเริ่มต้น และเวลาผ่านไปของกระบวนการ
$ ps -p 1154 -o pid, ppid, fgroup, ni, lstart, etime
21. เพื่อหา ชื่อกระบวนการโดยใช้ PID.
$ ps -p 1154 -o comm=
22. ในการเลือกโปรเซสเฉพาะตามชื่อ ให้ใช้แฟล็ก -C ซึ่งจะแสดงโปรเซสลูกทั้งหมดด้วย
$ ps -C sshd.
23. ค้นหาทั้งหมด PIDs ของกระบวนการทั้งหมด มีประโยชน์เมื่อเขียนสคริปต์ที่ต้องอ่าน PIDs จากเอาต์พุต std หรือไฟล์
$ ps -C httpd -o pid=
24. ตรวจสอบเวลาดำเนินการของกระบวนการ
$ ps -eo comm, etime, ผู้ใช้ | grep httpd.
ผลลัพธ์ด้านล่างแสดงว่าบริการ HTTPD ทำงานเป็นเวลา 1 ชั่วโมง 48 นาที 17 วินาที
หากระบบของคุณไม่ทำงานตามที่ควรจะเป็น ตัวอย่างเช่น หากระบบทำงานช้าผิดปกติ คุณสามารถ ดำเนินการแก้ไขปัญหาระบบบางอย่าง ดังนี้
26. หา กระบวนการทำงานชั้นนำ โดยการใช้หน่วยความจำและ CPU สูงสุดใน Linux
$ ps -eo pid, ppid, cmd,%mem,%cpu --sort=-%mem | ศีรษะ. หรือ. $ ps -eo pid, ppid, cmd,%mem,%cpu --sort=-%cpu | ศีรษะ.
27. ที่จะฆ่า กระบวนการ Linux/แอปพลิเคชันที่ไม่ตอบสนอง หรือกระบวนการใด ๆ ที่กินเวลา CPU สูง
ก่อนอื่นให้หา PID ของกระบวนการหรือแอปพลิเคชันที่ไม่ตอบสนอง
$ ps -A | grep -i เครียด
จากนั้นใช้ คำสั่งฆ่า เพื่อยุติทันที
$ ฆ่า -9 2583 2584
28. แสดงบริบทความปลอดภัย (โดยเฉพาะสำหรับ เซลินุกซ์) แบบนี้.
$ ps -eM หรือ. $ ps --บริบท
29. คุณยังสามารถแสดงข้อมูลความปลอดภัยในรูปแบบที่ผู้ใช้กำหนดได้ด้วยคำสั่งนี้
$ ps -eo euser, ruser, suser, fuser, f, comm, label
30. ในที่สุดตั้งแต่ ปล แสดงข้อมูลคงที่ คุณสามารถใช้ ดูยูทิลิตี้ เพื่อดำเนินการตรวจสอบกระบวนการตามเวลาจริงด้วยเอาต์พุตซ้ำ ซึ่งแสดงทุกวินาทีตามคำสั่งด้านล่าง (ระบุกำหนดเอง ps คำสั่ง เพื่อให้บรรลุวัตถุประสงค์ของคุณ)
$ watch -n 1 'ps -eo pid, ppid, cmd,%mem,%cpu --sort=-%mem | ศีรษะ'
สำคัญ: ps แสดงเฉพาะข้อมูลแบบคงที่ เพื่อดูผลลัพธ์ที่อัปเดตบ่อยครั้ง คุณสามารถใช้เครื่องมือเช่น htop; สูงสุด, และ เหลือบมอง: อันที่จริงสองอันสุดท้ายเป็นเครื่องมือตรวจสอบประสิทธิภาพของระบบ Linux
คุณอาจต้องการอ่านบทความที่เกี่ยวข้องต่อไปนี้
นั่นคือทั้งหมดที่สำหรับตอนนี้. หากคุณมีใด ๆ ที่เป็นประโยชน์ ps คำสั่ง ตัวอย่างที่จะแบ่งปัน (อย่าลืมอธิบายสิ่งที่ทำ) ใช้แบบฟอร์มความคิดเห็นด้านล่าง