Upstart timeout não respeitado?

5

Atualmente estou aprendendo brincando. Acho que entendi o princípio agora, mas estou tendo dificuldades com a estrofe "kill timeout" em trabalhos iniciantes.

Por exemplo, eu tenho o seguinte trabalho (filename /etc/init/test.conf):

description "test"
start on test
console owner
kill timeout 5
task
exec /root/test

O arquivo / root / test é um pequeno script de shell que é executado para sempre:

while true; do o=1; done;

Ao fazer "initctl start test", o job "test" é executado e chama o script "/ root / test". Eu posso verificar isso fazendo "teste de status do initctl" que mostra o trabalho como em execução, bem como fazendo "ps -Alf".

Agora, a sub-rotina "kill timeout 5" deve fazer com que o trabalho seja eliminado após 5 segundos. Mas, em vez disso, o trabalho parece durar para sempre.

Gostaria de saber se estou usando e entendendo a estrofe de tempo limite de morte no caminho certo. É uma característica essencial para mim.

Isso está no Natty 11.04, mas acho que a questão se aplica também a outras versões.

Muito obrigado,

Binarus

    
por Binarus 14.03.2011 / 09:21

1 resposta

4

Não é isso que kill timeout faz; especifica quanto tempo aguardar depois de enviar um sinal educado de "término" para o processo sair antes de desistir e lançar armas nucleares.

Se você quiser definir um limite de tempo de processo na maneira upstart , a maneira mais fácil é provavelmente que algo periodicamente emita um evento timer e use stop on timer . Como alternativa (e talvez mais geralmente), crie um programa wrapper que bifurque um pequeno processo que envia um evento após um período de tempo e stop on desse evento.

Para mais informações e práticas recomendadas, consulte o O Cookbook Upstart .

    
por geekosaur 14.03.2011 / 09:36