questo è il blocco di codice che deve essere inserito
### BEGIN INIT INFO
### END INIT INFO
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
Quindi:
sudo nano /etc/init.d/nomescript.shScriviamo all’interno del file lo scirpt che vogliamo sia lanciato, diamo i permessi di esecuzione:
sudo chmod a+x /etc/init.d/nomescript.shed infine lo lanciamo:
sudo update-rc.d -f nomescript.sh defaults
Ora lo script verrà eseguito ad ogni avvio della macchina e fermato al suo spegnimento
se noi volessimo invece che lo script venga solo avviato all'avvio (99 è il numero di priorità più alto il numero più tardi viene eseguito)
sudo update-rc.d -f myscript.sh start 99 2 3 4 5.se volessimo che sia avviato al riavvio e allo spegnimento
sudo update-rc.d -f myscript.sh start 90 0 6.oppure che venga fermato al riavvio e allo spegnimento
sudo update-rc.d -f myscript.sh stop 90 0 6.altra possibilità è inserire lo script direttamente in /etc/rcN.d ovvero in rc2.d rc3.d ... rc5.d per avviarlo alla partenza e in rc0.d rc1.d rc6.d per il reboot e shutdown chiamando il file con S per start k per stop seguito dalla priorità.
In genere su Linux sono utilizzati i seguenti livelli:
Runlevel 0 :/etc/rc.d/rc0.d
Questo runlevel avvia la sequenza di arresto del sistema (shutdown)
Runlevel 1:/etc/rc.d/rc1.d
Questo runlevel rappresenta la modalità singolo utente, nessun altro utente può collegarsi, il servizio di rete è disabilitato.
Runlevel 2:/etc/rc.d/rc2.d
Rappresenta lo stato multiutente, il servizio rete è attivo ma è disabilitato il file sharing.
Runlevel 3:/etc/rc.d/rc3.d
In genere è quello predefinito quando si opera in modalità testuale, tutti i servizi sono attivi.
Runlevel 4:/etc/rc.d/rc4.d
Inutilizzato. Può essere dedicato ad usi personali
Runlevel 5:/etc/rc.d/rc5.d
E' il runlevel predefinito quando si vuole avviare Linux in modalità grafica
Runlevel 6:/etc/rc.d/rc6.d
Il runlevel 6 è quello di reboot.
Lo script
/etc/rc.d/rc
gestisce quali processi far partire a seconda del runlevel, andando ad analizzare le singole directory /etc/rc.d/rc#.d. In queste directory esistono una serie di symlink con nomi del tipo S12syslog o K65identd che puntano a degli script con nomi tipo /etc/rc.d/init.d/syslog o /etc/rc.d/init.d/identd./etc/rc.d/rc a seconda della directory corrispondente al runlevel da caricare fa partire tutti gli script che iniziano con S e fa chiudere tutti quelli che iniziano con K, eseguendoli nell'ordine indicato dal numero presente nei nomi dei file.
Gli script che di fatto permettono di gestire l'avvio o lo stop di un servizio sono quindi nella directory
/etc/rc.d/init.d/
e possono essere utilizzati direttamente dall'utente per gestire i singoli processi.es: S99nomescript.sh o K99nomescript.sh
altra possibilità di avviare uno script al completo riavvio del pc e inserire il nome dello script in /etc/init.d/rc.local che viene avviato dopo il completo avvio del pc ma comunque prima del login.
un esempio di script con funzioni avanzate si trova nel file /etc/init.d/skeleton che può servire come base di partenza per script d'avvio anche complessi
per ulteriori informazioni si veda il comando man update-rc.d
Nessun commento:
Posta un commento