11.07.2015 Views

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.3. LA GESTIONE DELL’AVVIO DEL SISTEMA 215indicato nella ultima colonna secondo la modalità specificata dal terzo campo. Specificandocome azione wait si richiede che il programma sia eseguito una sola volta, attendendo che essosia concluso prima di passare all’azione successiva; nell’esempio è questo il caso con gli script/etc/init.d/rc (che, come vedremo fra poco, sono quelli usati per avviare e fermare i servizi).Se invece non è necessario attendere la conclusione si può usare once.Specificando respwan si chiede che il comando sia messo in esecuzione immediatamente,senza attendere la sua conclusione per proseguire coi successivi, si richiede inoltre che essosia rilanciato automaticamente ogni volta che se ne termina l’esecuzione. Questo è quello chenell’esempio viene fatto con getty per avere i terminali di login attivi sulle varie console: ognivolta che ci si collega al sistema getty eseguirà login per l’autenticazione e questo eseguiràla shell, 62 all’uscita dalla shell, init, accorgendosi della terminazione del processo, rilancerà dinuovo getty.Il problema con questo file è che il significato di queste azioni non è di immediata comprensione,in quanto alcune sono indipendenti dal runlevel scelto, come per powerwait, powerfailnow,powerokwait, e altre come initdefault impostano proprio il runlevel di default. Inoltre il campoid può dover essere soggetto a restrizioni come nel caso delle righe di getty che richiedonoil numero della console.In genere non c’è molto da fare con questo file, l’unica cosa che può servire è cambiare lalinea dell’azione initdefault per cambiare il run level di default a cui ci si trova dopo l’avvio,ad esempio per passare dal login da console a quello su X (sempre che questo sia previsto dalladistribuzione, per RedHat questo significa mettere un 5 al posto di 3, in Debian invece nonesiste).Un seconda azione che si può volere modificare (o disabilitare) è la reazione alla combinazionedi tasti ctrl-alt-del che nell’esempio è specificata dall’azione ctrlaltdel, ed invoca ilprogramma shutdown per riavviare il computer.Come si può notare dall’esempio precedente, attraverso inittab si possono impostare soloalcune azioni elementari, tutto il procedimento di avvio di SysV viene effettuato, come accennato,grazie all’uso dello script /etc/init.d/rc. Come si può notare questo viene invocato, perciascun runlevel, con un argomento pari al numero dello stesso.Il meccanismo di avvio di SysV si basa infatti sulla presenza, per ciascun programma oservizio che si vuole attivare, di uno specifico script di avvio, la cui locazione, secondo il FHS, èin /etc/init.d. Questi script prendono sempre come parametri una serie di comandi: start,che avvia il servizio, stop che lo ferma, restart che lo ferma e lo riavvia, reload che fa rileggerela configurazione.Se si va ad analizzare il contenuto di /etc/init.d/rc ci si accorgerà che questo verificala presenza di una directory rcN.d, 63 dove N corrisponde al numero del runlevel passato comeargomento e legge la lista dei file ivi presenti. Se vediamo il contenuto di queste directoryvedremo che esse contengono tutte una serie di link simbolici agli script di /etc/init.d, con lostesso nome ma preceduto da una sigla composta da una S od una K seguite da un numero didue cifre.Dopo aver letto la lista dei file presenti /etc/init.d/rc si limita ad eseguire tutti questiscript in ordine alfabetico, passando l’argomento stop a quelli che iniziano per K (che sta perkill) ed l’argomento start a quelli che iniziano per S. In questo modo i servizi indicati dairispettivi script vengono fermati o avviati, e nell’ordine stabilito dalle due cifre usate nella sigla.In questo modo è possibile, per ogni servizio, avere una procedura d’avvio personalizzata, damettere in /etc/init.d, ed avviarlo o fermarlo a piacere nei vari runlevel con un semplice linksimbolico. Si può anche, grazie alle due cifre, decidere anche in quale punto della sequenza di62 si ricordi che mettere in esecuzione un nuovo programma non comporta la creazione di un nuovo processo,nella catena di esecuzioni successive il processo resterà sempre lo stesso.63 direttamente sotto /etc o dentro /etc/init.d a seconda delle distribuzioni.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!