Ecco l'estratto di http://www.debian-administration.org/articles/28 che sembra rispondere alla tua domanda.
Nota: nello script di esempio riportato di seguito è sufficiente aggiungere una chiamata alla sezione " start)
" per avviare effettivamente il programma. Puoi testare la funzionalità dello script senza riavviare il sistema: chiamalo con il percorso completo e assegnandogli un parametro di " start
" o " stop
"
Ecco qui:
Debian usa un sistema Sys-V come init per eseguire comandi quando cambia il runlevel del sistema, ad esempio all'avvio e all'arresto.
Se si desidera aggiungere un nuovo servizio per l'avvio all'avvio della macchina, è necessario aggiungere lo script necessario alla directory /etc/init.d/
. Molti degli script già presenti in quella directory ti daranno un esempio del tipo di cose che puoi fare.
Ecco uno script molto semplice che è diviso in due parti, il codice che viene sempre eseguito e il codice che viene eseguito quando viene chiamato con "start" o "stop".
#! /bin/sh
# /etc/init.d/blah
#
# Some things that run always
touch /var/lock/blah
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script blah "
echo "Could do more here"
;;
stop)
echo "Stopping script blah"
echo "Could do more here"
;;
*)
echo "Usage: /etc/init.d/blah {start|stop}"
exit 1
;;
esac
exit 0
Dopo aver salvato il file nella posizione corretta, assicurati che sia eseguibile eseguendo " chmod 755 /etc/init.d/blah
".
Quindi è necessario aggiungere i collegamenti simbolici appropriati per fare in modo che lo script venga eseguito quando il sistema si arresta o si alza.
Il modo più semplice per farlo è usare il comando specifico di Debian update-rc.d
:
root@skx:~# update-rc.d blah defaults
Adding system startup for /etc/init.d/blah ...
/etc/rc0.d/K20blah -> ../init.d/blah
/etc/rc1.d/K20blah -> ../init.d/blah
/etc/rc6.d/K20blah -> ../init.d/blah
/etc/rc2.d/S20blah -> ../init.d/blah
/etc/rc3.d/S20blah -> ../init.d/blah
/etc/rc4.d/S20blah -> ../init.d/blah
/etc/rc5.d/S20blah -> ../init.d/blah
start-stop-daemon
gestisce meglio (anche se preferisce il demonizzazione del programma stesso). Quale distro stai usando? Al di fuori dei tipi MIME desktop, le estensioni dei file sono prive di significato in * nix e si preferisce che gli eseguibili non ne abbiano uno.