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