ทุกกระบวนการจะถูกระบุไว้ในผลลัพธ์ของps aux; ไม่ว่าจะทำงานนอนหลับซอมบี้หรือหยุดทำงาน
อย่างไรก็ตามในกรณีของคุณเนื่องจากคุณวิ่งขั้นตอนโดยใช้sh abc.sh, shเป็นโปรแกรม (เปลือก) abc.shที่ทำงานและไม่ได้ ดังนั้นps auxจะไม่ประกอบด้วยกระบวนการabc.shเพราะสิ่งที่grepไม่สามารถให้ผลลัพธ์ใด ๆ
ดังนั้นวิธีที่ถูกต้องที่คุณควรใช้คือ:
ps aux | grep sh
นอกจากนี้ยังอาจจะกลับมาที่คุณกระบวนการอื่น ๆ ที่กำลังทำงานอยู่มีสตริงที่ใดก็ได้ในการส่งออกของพวกเขาshps aux
คุณควรทราบว่าการที่จะ "ทำงาน" เมื่อการส่งออกของps auxมีของเป็นSTAT Rถ้ามันเป็นอย่างอื่นมันจะไม่ทำงานที่อินสแตนซ์ที่คุณสั่งให้ใช้เพื่อตรวจสอบกระบวนการทำงาน สถานะกระบวนการที่แตกต่างกันสามารถพบได้ใน man page สำหรับ ps:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is being traced
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by its parent
คุณสามารถเรียกใช้topคำสั่งเพื่อตรวจสอบว่ากระบวนการกำลังทำงานหรือหลับอยู่และปริมาณของ CPU, RAM ที่ใช้ไปหรือไม่ (นี่จะแสดงรายการกระบวนการของคุณอีกครั้งsh)
อย่างไรก็ตามหากคุณต้องการให้กระบวนการของคุณอยู่ในรายการabc.shคุณควรมีบรรทัดแรกของสคริปต์ที่คุณใช้เป็น:
#!/bin/sh
เพื่อให้เชลล์จะรู้ว่าแอปพลิเคชันใดที่จะใช้ในการเรียกใช้สคริปต์ (ในกรณีนี้ให้เปลี่ยนเป็น#!/bin/bashbash) จากนั้นให้สิทธิ์อนุญาตในการเรียกใช้กระบวนการโดยใช้:
chmod +x /path/to/abc.sh
แทนที่/path/to/ด้วยตำแหน่งของabc.shไฟล์จากนั้นรันabc.shโดยใช้
/path/to/abc.sh
แทนที่/path/to/ด้วยตำแหน่งของabc.shไฟล์อีกครั้ง
S+หมายถึงอะไร