Reiniciando um serviço a partir de um script

3

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
  • CLI - > tem um comando restart , que invoca um script
  • script faz sudo service myservice restart

- Mais informações -

Estou no Ubuntu 12.04, ou seja, upstart

    
por vyom 26.08.2014 / 14:18

2 respostas

0

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

    
por 26.08.2014 / 15:00
0

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
    
por 26.08.2014 / 15:06