Questão Como posso configurar um serviço para ser executado na inicialização


Eu tenho um daemon que corre bem se eu iniciá-lo manualmente com o service comando:

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

mas não está configurado para iniciar automaticamente quando o PC é reinicializado.

Como posso configurá-lo para iniciar automaticamente, mesmo que ninguém esteja logado no PC?


209
2017-10-25 13:46


origem


@ user154721 Quais argumentos você deu para o update-rc.d fazer o autostart funcionar? Eu tentei várias opções, mas não tive sorte. - BennyTheBen


Respostas:


sudo update-rc.d minidlna defaults

Isso deve adicionar o serviço ao sistema de inicialização automática. Mas se você receber:

System start/stop links for /etc/init.d/minidlna already exist.

Faça o comando

sudo update-rc.d minidlna enable

P.S.: Para mais detalhes, veja a man page para update-rc.d digitando o comando man update-rc.d


241
2017-10-25 14:09



obrigado, mas e se eu obtiver essa saída ao executar esse comando ?: System start/stop links for /etc/init.d/minidlna already exist. - Ricardo Reyes
Eu grep'd para minidlna em todos os arquivos em / var / log e não consegui encontrar qualquer menção do serviço na inicialização - Ricardo Reyes
se o minidlna não gravar em nenhum arquivo de log, você não o encontrará em nenhum lugar. Isso pode falhar porque não há conexão de rede quando é iniciado? Tente ver a configuração se for possível ativar a depuração e / ou o registro para descobrir o que está errado. - LassePoulsen
@RicardoReyes usa sudo update-rc.d -f minidlna remove para remover os links existentes. - Dogweather
Estou ficando abaixo error update-rc.d: /etc/init.d/usermanage: arquivo não existe - Rizwan Patel


Às vezes, você precisa executar um script no processo de inicialização, por exemplo, executar uma configuração do iptables no processo de inicialização. Então você não precisa executar o script manualmente a cada reinicialização.

Você pode executar o seu script no processo de boot no Ubuntu, adicionando-o ao /etc/init.d/rc.local Arquivo. Veja os passos abaixo.

  1. Aberto /etc/rc.local arquivo com este comando:

    vim /etc/rc.local
    
  2. Adicione seu script que você deseja executar no processo de inicialização, por exemplo:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. Revise os comentários incluídos nesse arquivo e verifique se a saída 0 está no final.

  4. Salve os arquivos. E o seu script será executado no processo de inicialização.


31
2017-10-25 13:52



Comentários de /etc/init.d/rc.local no Ubuntu 12.04 dizem "Short-Description: Run /etc/rc.local if exist", então talvez adicionar os scripts para /etc/rc.local seria melhor idéia? - Sanghyun Lee
Será que esse método emitirá o comando "shutdown" para o serviço ou apenas matará o processo após o desligamento do sistema operacional? - Vadim Chekan
Vadim, rc.local é executado apenas na inicialização, nada é alcançado no desligamento. O processo provavelmente seria morto pelo sistema operacional no desligamento. - Weboide
FYI: A diferença entre rc.local vs adicionando-o ao init, é que o rc.local é executado no final da seqüência de inicialização do init, e não como parte dele - BobTuckerman


  • Para iniciar um daemon na inicialização:

    update-rc.d service_name defaults
    
  • Remover:

    update-rc.d -f service_name remove
    

padrões => níveis de execução padrão 2,3,4 e 5

Exemplo:

update-rc.d tomcat7 defaults

26
2018-01-15 12:20



Quando eu faço este comando, eu recebo "System start / stop links para /etc/init.d/tomcat7 já existe". no entanto, quando eu reiniciar, ele não inicia o tomcat, eu sempre tenho que fazer "serviço tomcat7 start". - John Little
No meu caso sudo update-rc.d myservice o padrão sempre é concluído sem saída e o serviço não será iniciado na inicialização ou com serviço sudo myservice start que também se completa silenciosamente. sudo /etc/init.d/myservice starttrabalha no entanto - axk