Eu tenho um processo de servidor Java que executa código nativo e a possibilidade de todo o processo travar devido a um problema no código nativo está sempre presente. Existe algum mecanismo oferecido pelos sistemas operacionais *nix em que eu possa fazer o processo reaparecer quando existir de forma anormal (status de saída! = 0)?
Existe alguma ferramenta/utilitário que possa automatizar essa tarefa para qualquer tipo de processo, fornecendo um certo nível de controle/configuração ao mesmo tempo?
Responder1
Existem algumas opções - você sempre pode envolvê-lo em um script de shell curto como este: -
#!/bin/sh
RC=1
while [ $RC -ne 0 ]; do
./my-java-app
RC=$?
done
Longe de ser elegante, mas pode ser suficiente.
Responder2
O que você procura geralmente é chamado de monitoramento de processos ousupervisão de processo. Existem muitas ferramentas que fazem isso, geralmente como parte de um conjunto variado de recursos.Subir na vidaé cada vez mais usado para serviços de sistema no mundo Linux.Monitoraré a primeira coisa que eu tentaria para um programa não iniciado pelo root, mas existem muitas alternativas.