ฉันพยายามตรวจสอบว่ากระบวนการ (สมมติว่าเรียกว่า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
จะตั้งรหัสออกให้ค่าที่ไม่เป็นศูนย์หากไม่พบกระบวนการที่ตรงกัน