사용자 도구

사이트 도구


linux:bash:restart_process

문서의 이전 판입니다!


Restart Process shell script

scripting - How do I write a bash script to restart a process if it dies?

어떤 Process가 예기치 않게 죽었을 때 무조건 다시 해당 프로세스를 실행시킬 필요가 있을 경우

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

myserver가 해당 프로그램일 때 until myserver 는 myserver를 실행하고 그 리턴값이 돌아올 때까지 기다린다. myserver는 예기치 않게 죽으면 exit code로 0외의 값을 리턴하고, 정상적으로 종료되면 0을 리턴한다.

  • 0은 false 이므로 until을 종료시켜버린다.
  • 0외의 값은 true 이므로 구문 내부의 echo, sleep을 실행한 뒤 다시 myserver를 실행하고 기다린다.

따라서 myserver가 예기치 않게 죽으면 1초 뒤 무조건 재시작 된다.

위 스크립트를 만들어 cron@reboot으로 등록하면 서버 재시작시 무조건 해당 스크립트가 실행된다.

  • crontab -e
    @reboot /usr/local/bin/myservermonitor
linux/bash/restart_process.1405438595.txt.gz · 마지막으로 수정됨: 2014/07/16 00:36 저자 kwon37xi