Domanda Come posso configurare un servizio per l'esecuzione all'avvio


Ho un demone che funziona bene se lo avvio manualmente con il service comando:

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

ma non è configurato per l'avvio automatico al riavvio del PC.

Come posso configurarlo per l'avvio automatico, anche se nessuno è collegato al PC?


208
2017-10-25 13:46


origine


@ user154721 Quali argomenti hai fornito update-rc.d per far funzionare l'autostart? Ho provato varie opzioni ma non ho avuto fortuna. - BennyTheBen


risposte:


sudo update-rc.d minidlna defaults

Questo dovrebbe aggiungere il servizio al sistema di avvio automatico. Ma se ottieni:

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

Fai il comando

sudo update-rc.d minidlna enable

Post scriptum: Per ulteriori dettagli, consultare la pagina man per update-rc.d digitando il comando man update-rc.d


241
2017-10-25 14:09



grazie, ma cosa succede se ottengo questo risultato quando eseguo quel comando ?: System start/stop links for /etc/init.d/minidlna already exist. - Ricardo Reyes
Ho grep'd per minidlna in tutti i file in / var / log e non ho trovato alcuna menzione del servizio all'avvio - Ricardo Reyes
se minidlna non scrive in alcun file di log, non lo troverete dove. Potrebbe fallire perché non c'è alcuna connessione di rete quando viene avviato? Prova a guardare la configurazione se è possibile attivare il debug e / o la registrazione per scoprire cosa è sbagliato. - LassePoulsen
@RicardoReyes usa sudo update-rc.d -f minidlna remove rimuovere i collegamenti esistenti. - Dogweather
Sto arrivando sotto error update-rc.d: /etc/init.d/usermanage: il file non esiste - Rizwan Patel


A volte è necessario eseguire uno script sul processo di avvio, ad esempio eseguire una configurazione di iptables al processo di avvio. Quindi non è necessario eseguire lo script manualmente ogni riavvio.

Puoi eseguire il tuo script sul processo di avvio in Ubuntu aggiungendolo a /etc/init.d/rc.local file. Guarda i passaggi qui sotto.

  1. Aperto /etc/rc.local file con questo comando:

    vim /etc/rc.local
    
  2. Aggiungi lo script che vuoi eseguire sul processo di avvio, ad esempio:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. Esamina i commenti inclusi in quel file e assicurati che l'uscita 0 sia alla fine.

  4. Salva i file. E il tuo script verrà eseguito sul processo di avvio.


31
2017-10-25 13:52



Commenti su /etc/init.d/rc.local in Ubuntu 12.04 dice "Breve descrizione: Esegui /etc/rc.local se esiste", quindi magari aggiungere gli script a /etc/rc.local sarebbe un'idea migliore? - Sanghyun Lee
Questo metodo avrebbe emesso il comando "shutdown" al servizio o avrebbe semplicemente terminato il processo all'arresto del sistema operativo? - Vadim Chekan
Vadim, rc.local è appena avviato all'avvio, non si ottiene nulla all'arresto. Molto probabilmente il processo verrebbe ucciso dal sistema operativo all'arresto. - Weboide
A proposito: la differenza tra rc.local vs aggiungendolo a init, è che rc.local viene eseguito alla fine della sequenza di avvio di init, piuttosto che come parte di esso - BobTuckerman


  • Per avviare un daemon all'avvio:

    update-rc.d service_name defaults
    
  • Rimuovere:

    update-rc.d -f service_name remove
    

defaults => livelli di esecuzione predefiniti 2,3,4 e 5

Esempio:

update-rc.d tomcat7 defaults

26
2018-01-15 12:20



Quando faccio questo comando, ricevo "I collegamenti di avvio / arresto del sistema per /etc/init.d/tomcat7 esistono già". tuttavia, quando si riavvia, non si avvia tomcat, devo sempre fare "servizio tomcat7 start". - John Little
nel mio caso sudo update-rc.d myservice l'impostazione predefinita viene sempre completata senza output e il servizio non verrà avviato all'avvio o con inizio servizio myservice sudo che completa anche in silenzio. sudo /etc/init.d/myservice startfunziona comunque - axk