프로세스 상태를 확인하고 프로세스가 실행되고 있지 않은 경우 시작하려면 crontab 스크립트를 어떻게 작성해야 합니까?

프로세스 상태를 확인하고 프로세스가 실행되고 있지 않은 경우 시작하려면 crontab 스크립트를 어떻게 작성해야 합니까?

qBittorrent-nox는 지난주까지 잘 작동했지만 그 이후로 Ubuntu 14.04에서 계속 충돌이 발생했습니다. 이론적으로는 로깅이지만 로그 파일에는 다음 줄만 포함됩니다.

******** 정보********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
웹 UI 관리자에게는 필요하지 않습니다: admin
웹 UI 관리자 jelszó még az alapértelmezett: adminadmin
비즈니스에 관심이 있으신가요? Kérlek változtass jelszót 프로그램이 최고입니다.
******** 정보********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
웹 UI 관리자 felhasználó neve: weylyn1
******** 정보********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
웹 UI 관리자 felhasználó neve: weylyn1
******** 정보********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
웹 UI 관리자 felhasználó neve: weylyn1
. 그래서 qbittorrent-nox가 실행 중인지 5분마다 확인하고, 그렇지 않으면 # service qbittorrent-nox start루트로 시작하는 스크립트를 작성하고 싶습니다 . 하지만 실행 중이라면 5분 정도 더 기다렸다가 다시 확인해보세요. 충돌에 대한 해결책을 찾을 때까지 이 해결 방법을 사용하고 싶습니다.

답변1

데몬이 실행 중인지 테스트하는 방법은 무엇입니까? 때에 따라 다르지. 일부 데몬에는 프로세스 ID가 인 파일이 있습니다 /var/run/foo.pid. 예는 다음과 같습니다 /var/run/crond.pid.

$ cat /var/run/crond.pid
432

프로세스가 실행 중이면 다음 디렉터리가 있습니다 /proc.

$ ls /proc/$(cat /var/run/crond.pid)

따라서 /proc에 디렉터리가 없으면 재부팅하면 됩니다. qBittorrent에 이 pid 파일이 있으면 다음을 수행할 수 있습니다.

# cat <<EOF >/etc/cron.d/restart-qbittorrent-nox
*/5 * * * * /bin/test -e /proc/$(cat /var/run/qbittorrent-nox.pid)/cmdline || service qbittorrent-nox start
EOF

파일이 없으면 이를 사용하여 프로세스를 찾아야 /var/run합니다 .ps ax | grep qBittorrent

하지만 가장 좋은 해결책은 프로세스가 충돌한 이유를 알아내는 것입니다...

관련 정보