Script de cão de guarda para manter um aplicativo em execução

2

Atualmente, uso um aplicativo chamado MxEasy em meus servidores linux para exibir vídeos de algumas câmeras IP. O software é um pouco bugs e falha ocasionalmente. Eu escrevi um script que verifica se o aplicativo está sendo executado e se não é ... ele lança o aplicativo.

Eu tentei adicionar esta linha ao meu crontab para que ele execute o script. Ele está executando o script, mas não está iniciando o MxEasy. Alguma coisa que estou procurando?

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

O BTW Ubuntu Server 12.04 é o sistema operacional

Aqui está o MxEasyCheck.sh

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

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

Aqui está o meu crontab

# /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 
#
    
por Matthew 09.11.2012 / 18:56

3 respostas

4

Em vez de verificar a cada poucos minutos, escreva um loop que relança o programa quando ele termina de forma anormal. Mas não faça o seu próprio, existem muitos programas existentes para fazer isso. Consulte Verifique se o processo está sempre em execução

    
por 11.11.2012 / 01:34
2

Considere deixar seu aplicativo ser gerado pelo init ... veja init (8) - manter as coisas simples

    
por 09.11.2012 / 20:35
0

Use o script da célula Bellow mention para criar o Blog do Observador.

bin = WatcherName  echo "Hoje a data é=" date  pid = pgrep -f javaProcess.jar

se [$ pid]  então      O echo $ bin já está em execução PID: $ pid  outro      O echo $ bin não está em execução. Indo para correr:      cd / home / Aplicativos / caminho /      sh run.sh  fi

    
por 05.04.2018 / 18:14