Supervisorctl pára todos os processos = parado?

4

Estou executando vários scripts PHP CLI e monitorando-os via Supervisor.

Quando eu uso supervisorctl para monitorá-los, os scripts são exibidos assim:

cleanup     RUNNING    pid 1805, uptime 0:00:41
postsales   RUNNING    pid 1825, uptime 0:00:10
rebills     RUNNING    pid 1823, uptime 0:00:19
subscribers RUNNING    pid 1827, uptime 0:00:10

No entanto, quando eu emito um stop all , o supervisorctl congela e preciso pressionar CTRL + C para sair.

Quando eu executar o próximo supervisorctl , o status será assim:

cleanup     RUNNING    pid 1935, uptime 0:00:44
postsales   RUNNING    pid 1953, uptime 0:00:05
rebills     STOPPED    Jul 19 12:23 PM
subscribers RUNNING    pid 1951, uptime 0:00:05

i.e. apenas UM dos processos parou e os outros continuam a ser executados.

Se eu emitir mais comandos stop all , a mesma coisa acontece: um script tenta sair e o restante fica pendente.

Eu tentei modificar o arquivo supervisord.conf para usar STOPSIGNAL=KILL caso o script PHP não esteja manipulando corretamente o sinal TERM padrão, mas a mesma coisa acontece.

Existe alguma maneira de usar de forma confiável o supervisorctl com meus scripts para iniciá-los e interrompê-los adequadamente?

    
por Lee Benson 19.07.2012 / 14:27

1 resposta

5

Eu tive o mesmo problema usando o CentOS 6 com o supervisor 2. Suponho que você execute uma configuração similar.

No meu caso, a atualização resolveu o problema. No entanto, não há nenhum pacote binário supervisord disponível para o meu sistema. Então, aqui está como eu atualizei:

Primeiro, faça o download da seguinte fonte RPM supervisor-3.0-0.5.a10.fc16.src.rpm (disponível aqui: link ). Se você tentar um pacote de origem mais recente, a compilação poderá falhar e você poderá se deparar com um inferno de dependências.

Instale o pacote rpm-build usando:

yum install rpm-build

Em seguida, tente criar usando o seguinte comando,

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm

Se isso falhar, instale qualquer dependência necessária usando o yum.

yum install <dependencies>

Em seguida, tente criar novamente:

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm

Você então poderá instalar o supervisord e o problema desaparecerá!

yum install ~/rpmbuild/RPMS/noarch/supervisor-3.0-0.5.a10.el6.noarch.rpm
    
por 19.11.2012 / 12:16