Eu usei o Daemontools para fornecer uma maneira simples e confiável de supervisionar os serviços Unix em meus servidores. Funciona bem, mas requer uma maneira diferente de pensar ( The DJB Way ) e algumas queixas comuns são:
- Registros de data e hora baseados em TAI64N
- Não armazena scripts em /etc/init.d (ou (/usr/local)/etc/rc.d)
- Nem sempre funciona com scripts como apachectl. Alguns scripts precisam ser reescritos.
Lembro-me de que alguns daemons "supervisores / vigilantes" semelhantes estavam em andamento há cerca de dois anos, mas alguns ainda eram um pouco ásperos.
Se você mudou do Daemontools para outra coisa, o que você escolheu e funcionou bem para você? O RedHat ou Ubuntu vem com algum utilitário de supervisor de processo por padrão?
fonte
runsv
comando derunit
suporta controles personalizados, para que uma reinicialização possa ser implementada em termos de binários de controle nativo de um daemon.Bem, há runit . Não sei dizer quais são suas diferenças e semelhanças com os daemontools, mas, a julgar pelo site de Berstein, eu diria que há uma influência definida de Bernstein.
fonte
O Fedora parece pronto para mudar para o systemd: http://0pointer.de/blog/projects/systemd.html
fonte
Como uma alternativa ao já mencionado
daemonize
edaemontools
, existe o comando daemon do pacote libslack.daemon
é bastante configurável e se preocupa com todas as coisas tediosas do daemon, como reinicialização automática, log ou manipulação de arquivos de pid.fonte
Há supervisord
fonte
Há também a ferramenta daemon do libslack, escrita em C e disponível para várias plataformas (Unix).
É bastante configurável e se preocupa com todas as coisas tediosas do daemon, como reinicialização automática, log ou manipulação de arquivos de pid.
fonte
O Ubuntu vem com o Upstart - eu não sei muito sobre isso, mas sei que possui recursos de "supervisor". O launchd da Apple é outra opção (que o artigo da Wikipedia possui uma boa seção "veja também" que lista muitos outros também, incluindo Upstart e RunIt).
Todos eles têm seus pontos positivos e sua própria marca especial de übersuck - sempre que alguém me pergunta sobre os programas "supervisor de processo" / "cão de guarda", sempre faço a mesma pergunta: por que você precisa de um?
fonte
Não há ferramentas populares / de consenso da comunidade para isso, porque todos que seguem esse caminho percebem que é um beco sem saída. Se seus processos de longa execução falharem com frequência para que o monitoramento simples seja bom o suficiente, pare de usá-los e mova seu código para algo que será mais orientado a eventos.
edit: como Chris aponta abaixo, às vezes você está completamente encurralado; nesse caso, uma tarefa cron * / 1 que procura o processo / pidfile, executa um start / restart se estiver ausente e envia os resultados em um email para o responsável desenvolvedor / gerente de produto é a sua posição de substituto.
fonte