ฉันพยายามตรวจสอบว่ากระบวนการ (สมมติว่าเรียกว่าsome_process) กำลังทำงานบนเซิร์ฟเวอร์หรือไม่ ถ้าเป็นเช่นนั้นสะท้อน 1 หรือมิฉะนั้นสะท้อน 0
นี่คือคำสั่งที่ฉันใช้ แต่ใช้งานได้เพียงบางส่วนเท่านั้น (ข้อมูลเพิ่มเติมด้านล่าง) โปรดทราบว่าฉันต้องเขียนสคริปต์ในหนึ่งบรรทัด
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
หมายเหตุ:การ[s]ในsome_proces[s]คือการป้องกันไม่ให้grepกลับมาเอง
หากsome_processกำลังทำงานอยู่"1"จะได้รับเสียงสะท้อนซึ่งไม่เป็นไร อย่างไรก็ตามหากsome_processไม่ได้ใช้งานจะไม่มีสิ่งใดสะท้อนกลับมา
ps -Ccmdเพื่อหากระบวนการที่มีชื่อคำสั่งคือ "cmd"grepที่สมบูรณ์สามารถกำจัดpsจะตั้งรหัสออกให้ค่าที่ไม่เป็นศูนย์หากไม่พบกระบวนการที่ตรงกัน