![crond가 실행되고 있지 않은 경우 자동으로 다시 시작하는 방법은 무엇입니까?](https://rvso.com/image/1558015/crond%EA%B0%80%20%EC%8B%A4%ED%96%89%EB%90%98%EA%B3%A0%20%EC%9E%88%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B2%BD%EC%9A%B0%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다른 서비스가 실행되고 있지 않은 경우 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
물론 이 간단한 예는 서비스 프로세스와 서비스 시작 스크립트가 동일한 이름을 공유하는 경우에만 작동합니다. 하지만 당신의 요구에 맞게 고칠 수는 있어요