|
Contact me sending an e-mail (antispam defense activated) |
Title: Gestione degli init scripts
Author: Sandro Tosi
Last modified: 2006-02-13
Debian, come ogni altro sistema POSIX, mantiene i propri script di
avvio dei servizi nella directory /etc/init.d/ ed i link di ogni
runlevel dentro /etc/rc{runlevel}.d/ .
I tool che Debian offre per gestire i servizi che devono essere
attivati all'avvio della macchina sono update-rc.d ed il suo frontend
rcconf. Il loro scopo principale e` la creazione automatica dei link
sotto le directory rc*.d .
Si tenga presente che il runlevel predefinito di Debian e` il 2, non
importa se si stia usando X o meno: infatti, in caso di installazione
di xdm/gdm/kdm, vengono creati i link dentro tutti i runlevel 2-5,
anche se ci si aspetterebbe che fosse il 5 ad avere il login grafico.
Concentriamoci su update-rc.d, guardando l'help del comando:
# update-rc.d --help
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | sNN kNN]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
-n: not really
-f: force
per avere un'idea di come utilizzare il programma.
Per aggiungere uno script all'avvio di un certo runlevel si deve
creare questo script (se non e` gia` presente) sotto /etc/init.d/ (un
esempio di questo tipo di script e` disponibile nel file
/etc/init.d/skeleton). Creato lo script e datogli i permessi di
esecuzione, possiamo digitare (da root):
# update-rc.d a-script start 20 2 3 4 5
in questo modo abbiamo aggiunto lo script ``a-script'', contenuto
nella directory /etc/init.d/ , in modo che venga avviato all'ingresso
in uno dei runlevel 2, 3, 4 o 5.
E` possibile concatenare le stringhe di stop e start in un solo
comando:
# update-rc.d a-script start 20 2 3 4 5 . stop 01 0 1 6 .
tramite l'utilizzo del carattere ``.'' come separatore. In realta`,
per ottenere lo stesso risultato, avremmo potuto usare il comando:
# update-rc.d a-script defaults
Mentre per rimuovere un link da tutti i runlevel
#update-rc.d -f a-script remove
e solo il link verra` rimosso, non lo script sotto /etc/init.d/ .
|