Eu tenho alguns aplicativos que precisam ser executados no meu laptop o tempo todo.
Eu uso um script bash para iniciar esses aplicativos. No meu script, eu tenho um loop que se parece com isso:
while true;
do
xterm
done
Isso executa um aplicativo ( xterm
nesse caso) e, se o aplicativo travar, o loop o inicia novamente.
Isso tem uma desvantagem de que não há saída "limpa" desse loop. Portanto, mesmo que a intenção do usuário seja fechar xterm
, o loop inicia novamente.
Existe uma maneira de iniciar um aplicativo a partir do script bash, verificar se está em execução, executá- lo novamente se o script falhar ou não fazer nada se o usuário o fechar corretamente?
while xterm; do true; done
while ! xterm; do :; done
!
.Na
while
condição, você pode testar se o status de saídaxterm
foi bem-sucedido ou não com algo parecido com isto:$?
A variável mantém o status de saída do último comando executado.fonte
Eu vou sugerir que você use.
até xterm; echo "programa terminou com o status $?" ; feito
Isso irá executar novamente o seu programa se ele for morto.
fonte
Tente usar supervisor , muito simples e fácil de adicionar programa ou script para executar . No seu caso, o mínimo que você precisa
command
e talvezexitcodes
na seção programx para configurar.O padrão
exitcodes
é 0,2, então significa:Em geral, é o que você deseja: execute novamente se o script falhar ou não faça nada se o usuário o fechou corretamente (ou o script foi concluído com êxito)
tente a configuração mais simples primeiro:
Para obter mais flexibilidade, consulte a documentação do arquivo de configuração .
fonte