프로세스 충돌 시 자동으로 다시 시작

프로세스 충돌 시 자동으로 다시 시작

운영 체제가 시작될 때 자동으로 시작되어야 하는 응용 프로그램이 있습니다. 저는 CentOS 6에서 실행 중이므로 Place를 사용하고 있습니다 /etc/init.d. 지금까지는 모두 훌륭하고 작동합니다.

이제... 그 외에도 제가 원하는 것은 앱이 충돌(오류와 함께 종료)되는 경우 자동으로 다시 시작할 수 있기를 바라는 것입니다. 이상적으로는 최대 시도 횟수를 정의할 수도 있습니다. Mac의 Info.plist에는 몇 가지 키가 있는데, 작업을 KeepAlive 시작했으니 chkconfig그걸로 뭔가 할 수 있을지 궁금합니다.

나는 거기에 있다는 것을 안다http://mmonit.com/monit/하지만 아마도 내 필요에 비해 너무 많은 것 같습니다.

답변1

init.d 스크립트를 제어하여 이 프로세스를 시작하는 경우 다음과 같이 init.d 스크립트에서 프로세스 실행을 래핑할 수 있습니다.

until myserver; do
    echo "Server 'myserver' crashed with exit code $?.  Respawning.." >&2
    sleep 1
done

이렇게 하면 프로세스가 종료될 때마다 기본적으로 영원히 루프에 프로세스가 유지됩니다. 계산 등은 다음과 같이 소개될 수 있습니다.

cnt=0
max=3
until myserver; do
    let cnt=cnt+1
    echo "Server 'myserver' crashed with exit code $?.  Respawning.." >&2
    sleep 1
    [ $cnt = $max ] && exit;
done

관련 정보