Watchdog for application
Algumas aplicações, como o x11vnc, tem problemas de desenvolvimento que fazem com que simplesmente caiam várias vezes. No caso do x11vnc é complicado pois pode ser a única forma de acesso a máquina.
Para contornar esse problema podemos usar um recurso de watchdog (cão de guarda) que fica "farejando" sua aplicação e a reinicia se houver problemas. Podemos criar um script bem simples de watchdog.
Nesse caso vou deixar o script na pasta /root. Mas sugiro que tenha uma pasta com seus scripts, por exemplo /bin/myscripts.
# vim my-watchdog.sh
Preencha com o conteúdo abaixo:
#!/bin/bash if [ ! "$(pidof x11vnc )" ] then /usr/bin/x11vnc -display :0 -auth guess -forever -bg & fi
Onde:
pidof = Comando que lista os identificadores de processo (PID) da aplicação passada como parâmetro. Caso a aplicação não esteja em execução, retorna "vazio".
x11vnc = É a aplicação que escolhi para utilizar nesse exemplo;
/usr/bin/x11... = É o comando que será executado caso o comando pidof retorne vazio.
Como o script já criado, basta colocá-lo para ser executado no cron
# crontab -e
* * * * * /root/watchdog.sh > /dev/null
Com essa linha no crontab, a cada minuto o script é executado e se não encontrar o aplicativo sendo executado, ele executa o comando.
Claro que dá pra fazer algumas implementações, mas isso já dá uma boa ajuda.