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 grep
trở 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_process
khô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
.ps
sẽ đặ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.