
다른 서비스가 실행되고 있지 않은 경우 cron 작업을 사용하여 다른 서비스를 모니터링하고 다시 시작합니다. 하지만 crond 자체를 모니터링/다시 시작하는 방법은 무엇입니까?
답변1
프로세스를 감시하고 (적절한 구성으로) 실패 후 데몬을 다시 시작할 수 있는 init 시스템( runit
, 등)이 필요하거나 cron 프로세스가 실행 중인지 확인하고 그렇지 않은 경우 다시 시작하는 다른 데몬을 실행해야 합니다. systemd
( monit
, CFEngine 등과 같은 로컬 에이전트를 실행하는 모든 구성 관리).
답변2
무한 루프의 감시 스크립트로 감시자를 관찰하고 이를 /etc/rc.local 또는 유사한 시작 파일에 넣는 것이 좋습니다.
#!/bin/bash
for service in crond httpd whatever
do
if [ `pgrep $service` = '' ]
then
service $service restart
# OR
# systemctl restart service
fi
sleep 3
done
물론 이 간단한 예는 서비스 프로세스와 서비스 시작 스크립트가 동일한 이름을 공유하는 경우에만 작동합니다. 하지만 당신의 요구에 맞게 고칠 수는 있어요