Antes de iniciar o serviço novamente, convém aguardar alguns segundos para que ele pare corretamente. Você pode atrasar seu script com a seguinte linha
# waiting for 5 seconds
sleep 5
Você pode ver mais detalhes aqui - link
Eu tenho um script de inicialização - /etc/init.d/myservice
, que inicia alguns processos, incluindo um processo CLI . E deste processo de CLI, estou adicionando um comando que pode ser usado para reiniciar o serviço (reiniciar nós mesmos - tipo de).
O que eu tentei - de um script (gerado pelo comando da CLI), executei sudo service myservice restart
, onde restart
é stop;start
.
Mas isso não funciona! Ou seja, mesmo que o stop
aconteça, no momento em que start
part estiver sendo executado, o script será finalizado (não com nenhum sinal, mas com simples EXIT
).
Eu tentei combinações de nohup
, disown
etc, mas não funcionaram! Não tenho certeza de como concluir o restart
sem ser finalizado - quaisquer ponteiros ou soluções alternativas para depurar mais?
Para resumir:
myservice
- > gera muitos processos, incluindo o CLI
restart
, que invoca um script
sudo service myservice restart
- Mais informações -
Estou no Ubuntu 12.04, ou seja, upstart
Antes de iniciar o serviço novamente, convém aguardar alguns segundos para que ele pare corretamente. Você pode atrasar seu script com a seguinte linha
# waiting for 5 seconds
sleep 5
Você pode ver mais detalhes aqui - link
Eu tinha procurado há algum tempo, mas encontrei uma solução aqui para este SuperUser Q & A intitulado: Como desmembrar completamente um processo do Terminal? , depois de postar minha pergunta aqui.
| at now
Tags bash init-script