3 581
contributi
(estesa e verificata per Jessie) |
m (verificata, compatibile per tutte le versioni) |
||
(7 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili | {{Versioni compatibili}} | ||
== Introduzione == | == Introduzione == | ||
La maggior parte dei servizi installati su un sistema Debian GNU/Linux storicamente viene avviata e fermata tramite un apposito script che si trovava sotto la directory <code>/etc/init.d/</code>. A partire da Debian 8 ([[Jessie]]) questo sistema | La maggior parte dei servizi installati su un sistema Debian GNU/Linux storicamente viene avviata e fermata tramite un apposito script che si trovava sotto la directory <code>/etc/init.d/</code>, tramite il sistema di init [[SysV]]. A partire da Debian 8 ([[Jessie]]) questo sistema è stato sostituito di default da [[systemd]], che ha una nuova sintassi e nuovi percorsi per i propri file di configurazione, e non richiede più nemmeno l'impiego di script. | ||
Systemd è tuttavia in grado di comprenderne la sintassi, purché non ci siano servizi di systemd con lo stesso nome che nasconderebbero gli script presenti in <code>/etc/init.d/</code>, e di eseguirli all'avvio come avveniva in precedenza, secondo le dipendenze indicate in forma di commento nell'intestazione dello script. | Systemd è tuttavia in grado di comprenderne la sintassi, purché non ci siano servizi di systemd con lo stesso nome che nasconderebbero gli script presenti in <code>/etc/init.d/</code>, e di eseguirli all'avvio come avveniva in precedenza, secondo le dipendenze indicate in forma di commento nell'intestazione dello script. | ||
Riga 17: | Riga 17: | ||
== Come si creano gli script di avvio == | == Come si creano gli script di avvio == | ||
{{Suggerimento | Se si è interessati soltanto a eseguire dei comandi dopo che il sistema e i servizi sono stati avviati, senza lanciare qualcosa che resti in esecuzione, è sufficiente modificare il file <code>/etc/rc.local</code>, aggiungendo lì i propri comandi.}} | {{Suggerimento | Se si è interessati soltanto a eseguire dei comandi dopo che il sistema e i servizi sono stati avviati, senza lanciare qualcosa che resti in esecuzione, è sufficiente modificare il file <code>/etc/rc.local</code>, aggiungendo lì i propri comandi. Il file andrà creato se non esiste, e reso eseguibile.}} | ||
Per creare uno script di avvio per un servizio, è sufficiente creare un nuovo file sotto la directory <code>/etc/init.d/</code> e poi editarlo con un qualsiasi editor di testi. | Per creare uno script di avvio per un servizio, è sufficiente creare un nuovo file sotto la directory <code>/etc/init.d/</code> e poi editarlo con un qualsiasi editor di testi. | ||
Riga 42: | Riga 42: | ||
# Default-Start: 2 3 4 5 | # Default-Start: 2 3 4 5 | ||
# Default-Stop: 0 1 6 | # Default-Stop: 0 1 6 | ||
# Short-Description: | # Short-Description: Ottimizzazioni Notebook | ||
# Description: Attivazione ottimizzazioni Notebook | # Description: Attivazione ottimizzazioni Notebook personalizzate | ||
### END INIT INFO | ### END INIT INFO | ||
Riga 80: | Riga 80: | ||
</pre> | </pre> | ||
== <code>systemctl</code> == | == Installare lo script == | ||
=== Con <code>systemctl</code> ('''systemd''') === | |||
Con systemd è sufficiente abilitare lo script: | Con systemd è sufficiente abilitare lo script: | ||
<pre> | <pre> | ||
# systemctl mio_start_script.sh | # systemctl enable mio_start_script.sh | ||
</pre> | </pre> | ||
== <code>update-rc.d</code> == | === Con <code>update-rc.d</code> === | ||
Una volta creato lo script bisogna renderlo automatico. Per automatizzare lo start e lo stop di un servizio si possono scegliere 2 strade: | Una volta creato lo script bisogna renderlo automatico. Per automatizzare lo start e lo stop di un servizio si possono scegliere 2 strade: | ||
# si creano i vari link simbolici per stoppare e far partire nelle rispettive directory <code>/etc/rcN.d</code> | # si creano i vari link simbolici per stoppare e far partire nelle rispettive directory <code>/etc/rcN.d</code> | ||
# si utilizza il più comodo comando <code>update-rc.d</code> | # si utilizza il più comodo comando <code>update-rc.d</code>, che è la forma consigliata (in caso si utilizzi <code>systemctl</code>, verrà sempre invocato questo comando) | ||
Il comando da dare è quindi: | |||
<pre> | <pre> | ||
# update-rc.d <nome_script_in_init.d> default <priorità_start> <priorità_stop> | # update-rc.d <nome_script_in_init.d> default <priorità_start> <priorità_stop> | ||
Riga 120: | Riga 116: | ||
/etc/rc5.d/S10mio_script_start.sh -> ../init.d/mio_script_start.sh | /etc/rc5.d/S10mio_script_start.sh -> ../init.d/mio_script_start.sh | ||
</pre> | </pre> | ||
Se non volessimo addentrarci nell'argomento priorità di avvio, il mio consiglio è di usare l'opzione <code>defaults</code>; in questo modo sarà la nostra Debian ad assicurarsi che il servizio venga installato nei vari slot di priorità in maniera automatica. | Se non volessimo addentrarci nell'argomento priorità di avvio, il mio consiglio è di usare l'opzione <code>defaults</code>; in questo modo sarà la nostra Debian ad assicurarsi che il servizio venga installato nei vari slot di priorità in maniera automatica, in base a quanto configurato nell'intestazione dello script. | ||
<pre> | <pre> | ||
# update-rc.d mio_script_start.sh defaults | # update-rc.d mio_script_start.sh defaults | ||
Riga 128: | Riga 124: | ||
Nel caso in cui il nostro servizio <code>mio_script_start.sh</code> non dovesse più esserci utile, dobbiamo disabilitarlo. | Nel caso in cui il nostro servizio <code>mio_script_start.sh</code> non dovesse più esserci utile, dobbiamo disabilitarlo. | ||
Se si utilizza systemd è meglio prima disabilitare il servizio, mentre non è necessario altrimenti: | |||
<pre> | <pre> | ||
# systemctl disable mio_script_start.sh | # systemctl disable mio_script_start.sh | ||
</pre> | </pre> | ||
Sia con systemd sia senza, per eliminare i relativi link simbolici (che non avrebbero più effetto) creati nelle cartelle <code>/etc/rc?.d/</code>, si può usare il comando: | |||
<pre> | <pre> | ||
# update-rc.d -f mio_script_start.sh remove | # update-rc.d -f mio_script_start.sh remove | ||
</pre> | </pre> | ||
Infine | Infine possiamo rimuovere lo script dalla directory <code>/etc/init.d</code> con: | ||
<pre> | <pre> | ||
# rm /etc/init.d/mio_script_start.sh | # rm /etc/init.d/mio_script_start.sh | ||
Riga 148: | Riga 144: | ||
:[[Utente:HAL 9000|HAL 9000]] | :[[Utente:HAL 9000|HAL 9000]] | ||
|Verificata_da= | |Verificata_da= | ||
:[[Utente:HAL 9000|HAL 9000]] | :[[Utente:HAL 9000|HAL 9000]] 10:32, 21 lug 2019 (CEST) | ||
|Numero_revisori=1 | |Numero_revisori=1 | ||
}} | }} |
contributi