Tôi đang cố kiểm tra xem một tiến trình (giả sử nó được gọi some_process) có đang chạy trên máy chủ không. Nếu có, thì echo 1, nếu không thì echo 0.
Đây là lệnh mà tôi đang sử dụng nhưng nó chỉ hoạt động một phần (thông tin thêm bên dưới). Lưu ý rằng tôi cần viết kịch bản trong một dòng.
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
Lưu ý: Việc [s]trong some_proces[s]là để ngăn greptrở lại chính nó.
Nếu some_processđang chạy, sau đó "1"được lặp lại, đó là tốt. Tuy nhiên, nếu some_processkhông chạy, không có gì được lặp lại.
ps -Ccmdđể tìm các tiến trình có tên lệnh là "cmd", có thể loại bỏ hoàn toàngrep.pssẽ đặt mã thoát thành một số giá trị khác không nếu không tìm thấy quy trình khớp.