Reinicialização automática de um processo quando ele falha

0

Eu tenho um aplicativo que preciso iniciar automaticamente quando o sistema operacional é iniciado. Eu estou rodando em um CentOS 6, então estou usando um script de init LSB colocado em /etc/init.d . Até agora isso está bem e funcionando.

Agora .... além disso, o que eu gostaria é que, se meu aplicativo travar (sair com erro), eu quero que ele reinicie automaticamente. Idealmente, mesmo definindo um número máximo de tentativas. No Info.plist do Mac existem as chaves KeepAlive Como eu já tenho chkconfig trabalhando, fiquei me perguntando se há algo que eu possa fazer com isso.

Eu sei que há um link mas pode ser demais para o que eu preciso.

    
por Mariano Martinez Peck 22.04.2013 / 17:43

1 resposta

2

Dado que você controla o script init.d para iniciar este processo, você pode querer apenas quebrar a execução do seu processo no script init.d da seguinte forma:

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

Isso fará com que seu processo continue em um ciclo até basicamente basicamente para sempre, cada vez que ele morrer. Contando, etc., poderia ser introduzido assim:

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
    
por 22.04.2013 / 19:04