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/ . |