Estou procurando um gerenciador de processos que possa ser controlado pela CLI (adicionar, iniciar, parar, excluir), para que eu possa controlá-lo programaticamente.
Eu tentei usarhttps://github.com/circus-tent/circus, mas o problema é que quando eu o adiciono da CLI, os processos desaparecem após a reinicialização do servidor. Abri um issue lá;https://github.com/circus-tent/circus/issues/937. Ainda não experimentei o Supervisord, mas parece que tem o mesmo problema,https://github.com/mnaberez/supervisor_twiddler/issues/4.
Existe algum gerenciador de processos que possa adicionar processos daemon da CLI e as alterações persistam após a reinicialização, sem tocar no arquivo de configuração? Obrigado.
Estou no Centos 7, quero daemonizar um script PHP CLI para cada usuário registrado.
Desculpe, não tenho certeza de como posso explicar isso melhor. Eu tenho um script PHP CLI que possui loop infinito. O script está em execução para ouvir a nova mensagem recebida. O script deve ser iniciado no novo usuário registrado, por exemplo php listen.php --user_id=111
, e interrompido na exclusão do usuário.
Responder1
O pacote que recomendo para isso é chamado daemontools
de Dan Bernstein.
Esta é uma coleção de ferramentas para fornecer supervisão de serviços em todo o sistema e gerenciar serviços. Ele não apenas se preocupa em iniciar e parar serviços, mas também supervisiona os daemons de serviço enquanto eles estão em execução. Entre outras coisas, ele fornece uma interface confiável para enviar sinais para daemons de serviço sem a necessidade de arquivos pid e um recurso de log com rotação automática de arquivos de log e limites de espaço em disco.
Satisfaz todas as suas necessidades. É ultra-confiável, uma vez configurado e entendido como usá-lo, requer muito pouca manutenção. Se houver um problema no seu sistema, não será o daemontools.
- Todo o controle é via linha de comando.
- Os daemons serão reiniciados na reinicialização do sistema.
- Os daemons podem ser parados, iniciados, parados e suspensos na CLI.
- Além disso, também lida com o registro de cada daemon.
- Ele gerencia reinicializações rápidas (quando um programa morre rapidamente).
Este pacote e o design subjacente são sólidos como uma rocha. O código-fonte não muda há anos, mas não se deixe enganar. Não precisou mudar porque está correto.
Eu pessoalmente usei este pacote para controlar de forma confiável centenas de processos daemon em uma máquina por vez.
A configuração de um novo cliente é fácil, basta colocar um arquivo de controle no diretório especificado e ele será automaticamente iniciado e reiniciado para sempre, a menos que você intervenha. Depois de saber como o arquivo deve ser, você cria um modelo ou uma forma de parametrizar a criação do arquivo de controle.
Acho que sua melhor aposta é obter o pacote fonte RPM do kteru no github e construir seu próprio RPM a partir dele. É fácil de construir, mas o RPM facilitará o gerenciamento e a replicação do seu sistema.
A página inicial e a documentação estão localizadas emhttp://cr.yp.to/daemontools.html
O pacote fonte CentOS 4-7 RPM está disponível no github: https://github.com/kteru/daemontools-rpm
Há também um pacote chamado runit
que considero um ramo daemontools
sem algumas restrições de licenciamento e distribuição daemontools
e uma política de layout de diretório mais flexível. Está nos repositórios Debian, não conheço o CentOS.