cron 데몬이 계속 실행되고 있는지 확인하세요.

cron 데몬이 계속 실행되고 있는지 확인하세요.

만약에데비안 7호스팅된 VM과 최신 cron데몬에서 실행 중인 서버(gasp)에 버그가 있어 크론이 뚜렷한 이유 없이 실행을 중지합니다. 이는 한 번만 발생하므로 디버깅이 어렵습니다.

크론이 다시 충돌하고 이메일 경고를 보내는 경우 크론이 자동으로 다시 시작되도록 하려면 어떻게 해야 합니까?

답변1

언제든지 확인하실 수 있습니다감시 장치프로젝트.
서비스를 다시 시작하여 따라잡을 수 있습니다.
의견에 제안된 대로 크론을 수정할 수 없는 경우.

답변2

프로세스를 모니터링하고 다시 시작하기 위해 daemontools와 같은 프로그램을 실행할 수 없나요?

실제로 일부 컴퓨터에서는 그렇게 합니다. "daemontools와 유사한 것"은 실제로스낵백그러나 daemontools 제품군의 다른 구성원은 GNU 크론을 완벽하게 관리할 수 있습니다. (Vixie cron은 또 다른 이야기이지만 데비안을 의미하신 것입니다.)

GNU cron은 daemontools 서비스 제품군의 관리하에 실행되는 가장 간단한 서비스 중 하나입니다. Gerrit Pape의 실행 스크립트 컬렉션에는 nosh 도구 세트와 함께 제공되는 서비스 번들 컬렉션도 포함되어 있습니다.

즉, GNU cron을 다시 시작해야 했던 기억이 없습니다.추락했기 때문에.

가장 중요한 점은 서비스 관리가 단순히 자동으로 다시 시작하는 것 이상이라는 점입니다. 이것은반품로깅 및 리소스 제어와 관련하여 둘 다 작업 관련입니다.원인 진단GNU 크론이 충돌합니다.

문제 진단에는 다음이 포함됩니다.

  • 코어 덤프를 활성화하는 run데 사용되는 프로그램을 편집합니다 .softlimit
  • 스크립트(또는 이에 상응하는 항목) 편집 restart...
    • ...데몬이 종료되었는지 또는 신호를 통해 종료되었는지 확인합니다.
    • ...코어 덤프를 수집합니다.
    • ...경고를 발생시키고 이메일 알림을 보냅니다. (나는 restart충돌/중단의 마지막 몇 줄을 나에게 이메일로 보내는 스크립트를 설정한 적이 있습니다 .)log/main/current
    • ...재시작 속도 제한을 조정합니다.
  • GNU cron의 별도 로그와 서비스 관리자의 자체 로그를 읽어 데몬이 다시 시작되는 시기와 빈도, 출력되는 오류 메시지(있는 경우)를 확인하세요.

추가 읽기

답변3

crond나를 통해서는 모니터링이 불가능하므로 다음 crond과 같이 합니다.
echo "while true; do if ! (ps aux |grep crond |grep -v grep); then /etc/init.d/crond start; fi && sleep 5; done &" >> /etc/rc.local

답변4

daemontools, 등을 설치할 필요가 없습니다 runit. supervise이러한 도구는 유용하지만 일반적으로 cron만 사용할 필요가 없는 사용 사례를 다룹니다. 필요한 것만 필요하며 init로 쉽게 처리할 수 있습니다. /etc/inittab에 추가:

cron:2345:respawn:/usr/sbin/crond -n

crond먼저 해당 -n옵션이 지원되는지 확인하세요 . 이는 분기하지 않고 포그라운드에 머물지 않도록 지시합니다. ** rc 스크립트에서 crond를 비활성화해야 합니다 **.

/usr/lib/lsb/remove_initd /etc/init.d/crond

어떤 이유로 crond가 stdout 또는 stderr로 출력하는 경우 해당 출력을 처리하고 래퍼 스크립트를 생성하는 래퍼 스크립트를 작성해야 합니다. 스크립트를 단순하게 유지하세요.

#!/bin/sh
#crond-wrapper.sh 
exec crond -n &>>/var/log/crond

또는 while 루프 내에서 호출되는 스크립트를 사용하여 init.d/crond기존 패키징 스크립트를 수정할 수 있습니다. crond -n하지만 이 경우 pid나중에 사용할 수 있도록 스크립트를 현명하게 저장해야 합니다.

관련 정보