Caveat emptor: Tutta questa roba non è necessaria se vi trovate un file /etc/rc.local. Potete usare quello per ottenere esattamente lo stesso comportamento.
Molti di voi sapranno che le distribuzioni di GNU/Linux più note (Debian e derivate, come Ubuntu, ma anche Fedora e OpenSUSE) utilizzano un init derivato da UNIX System V, che ha la caratteristica di organizzare i singoli script di avvio in directory diverse a seconda del runlevel.
In realtà, a volte sarebbe desiderabile avere uno script che avvii, come dire, tutte quelle attività una tantum, o per cui non si prevede una rigorosa implementazione degli stati per singolo runlevel. In questo, un init stile BSD offre una funzionalità apposita: uno script rc.local.
Con i passaggi seguenti (provati su Debian e Ubuntu) è possibile aggiungere uno script che si comporta esattamente come il suddetto script, che si chiamerà local:
cd /etc/init.d sudo touch local sudo chmod +x local sudo update-rc.d local defaults 80
/etc/init.d/local dovrà contenere righe come queste:
#!/bin/bash
case "$1" in
start)
# Comandi da eseguire all'avvio del computer
# (o dello script)
comando1
comando2
# Due punti e virgola ;; marcano la fine della
# sezione
;;
stop)
# Comandi da eseguire allo spegnimento del
# computer (o alla terminazione dello script)
comando1
comando2
;;
restart)
# Comandi da eseguire al riavvio dello script
comando1
comando2
;;
*)
# Nessun parametro specificato.
echo "Usage: $0 {start|stop|restart}
;;
esac



1 Risposta a “Aggiungere uno script di esecuzione locale ad un init stile UNIX System V”