애플리케이션을 계속 실행하는 Watchdog 스크립트

애플리케이션을 계속 실행하는 Watchdog 스크립트

저는 현재 Linux 서버에서 MxEasy라는 애플리케이션을 사용하여 여러 IP 카메라의 비디오를 표시하고 있습니다. 소프트웨어에는 버그가 많고 때로는 충돌이 발생합니다. 응용 프로그램이 실행 중인지 확인하고 그렇지 않으면... 응용 프로그램을 시작하는 스크립트를 작성했습니다.

스크립트를 실행하기 위해 crontab에 이 줄을 추가해 보았습니다. 스크립트를 실행 중이지만 MxEasy가 시작되지 않습니다. 제가 눈치채지 못한 부분이 있나요?

0,15,30,45,50 * * * * root  export DISPLAY=:0 && /etc/cron.hourly/MxEasyCheck.sh 

그런데 Ubuntu Server 12.04가 운영 체제입니다.

MxEasyCheck.sh 입니다.

MXEASY=$(ps -A | grep -w MxEasy)

if ! [ -n "$MXEASY" ] ; then
    /home/emuser/bin/MxEasy/startMxEasy.sh &
    exit
fi

이게 내 크론탭이에요

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
0  *    * * *   root    /etc/cron.hourly/rsynccheck.sh
0,15,30,45,50 * * * * root  export DISPLAY=:0 && /etc/cron.hourly/MxEasyCheck.sh 
#

답변1

몇 분마다 확인하는 대신 프로그램이 비정상적으로 종료되면 다시 시작하는 루프를 작성하세요. 하지만 스스로 그렇게 하지 마십시오. 이를 수행할 수 있는 기존 프로그램이 많이 있습니다. 바라보다프로세스가 항상 실행되고 있는지 확인하십시오.

답변2

init에 의해 애플리케이션을 생성하는 것을 고려해보세요... init(8)을 참조하세요 - 일을 쉽게 만드세요

답변3

관찰자 블로그를 생성하려면 아래 멘션 유닛 스크립트를 사용하세요.

bin=WatcherName echo "오늘 날짜는 =" date pid=pgrep -f javaProcess.jar

if [ $pid ] then echo $bin이 실행 중입니다. PID: $pid else echo $bin이 실행 중이 아닙니다. 실행하려면: cd /home/Apps/path/ sh run.sh fi

관련 정보