crond가 실행되고 있지 않은 경우 자동으로 다시 시작하는 방법은 무엇입니까?

crond가 실행되고 있지 않은 경우 자동으로 다시 시작하는 방법은 무엇입니까?

다른 서비스가 실행되고 있지 않은 경우 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

물론 이 간단한 예는 서비스 프로세스와 서비스 시작 스크립트가 동일한 이름을 공유하는 경우에만 작동합니다. 하지만 당신의 요구에 맞게 고칠 수는 있어요

관련 정보