Impara a conoscere Linux: la directory /etc/init.d
- Categoria: Linux
Se usi Linux, molto probabilmente avrai sentito parlare di init.d directory. Ma cosa fa esattamente questa directory? Alla fine fa una cosa ma fa quella cosa per l'intero sistema, quindi init.d è molto importante. Il init.d directory contiene una serie di script di avvio / arresto per vari servizi sul sistema. Tutto da acpid per x11-common è controllato da questa directory. Ovviamente non è esattamente così semplice.
Se guardi il file /eccetera directory troverai le directory che sono nel modulo rc # .d (Dove # è un numero riflette un livello di inizializzazione specifico, da 0 a 6). All'interno di ciascuna di queste directory è presente una serie di altri script che controllano i processi. Questi script inizieranno con una 'K' o una 'S'. Tutti gli script 'K' vengono eseguiti prima degli script 'S'. E a seconda di dove si trovano gli script, determinerà quando inizieranno gli script. Tra le directory i servizi di sistema lavorano insieme come una macchina ben oliata. Ma ci sono momenti in cui è necessario avviare o interrompere un processo in modo pulito e senza utilizzare i comandi kill o killall. È qui che il file /etc/init.d la directory è utile.
Ora se stai usando una distribuzione come Fedora potresti trovare questa directory in /etc/rc.d/init.d . Indipendentemente dalla posizione, ha lo stesso scopo.
Per controllare uno qualsiasi degli script in init.d manualmente devi avere accesso root (o sudo). Ogni script verrà eseguito come un comando e la struttura del comando sarà simile a:
/etc/init.d/command OPTION
Dove comando è il comando effettivo per eseguire e OPZIONE può essere uno dei seguenti:
- inizio
- fermare
- ricaricare
- ricomincia
- force-reload
Molto spesso utilizzerai entrambi iniziare, fermare, o ricomincia. Quindi se vuoi fermare la tua rete puoi emettere il comando:
/etc/init.d/networking stop
Oppure, se apporti una modifica alla tua rete e devi riavviarla, puoi farlo con il seguente comando:
/etc/init.d/networking restart
Alcuni degli script di inizializzazione più comuni in questa directory sono:
- networking
- samba
- apache2
- ftpd
- sshd
- colombaia
- mysql
Ovviamente potrebbero esserci script usati più spesso nella tua directory - dipende da cosa hai installato. L'elenco sopra è stato preso da un'installazione di Ubuntu Server 8.10, quindi un'installazione desktop standard avrebbe pochi script di tipo di rete in meno.
Ma per quanto riguarda /etc/rc.local
C'è una terza opzione che usavo un po '. Questa opzione è la /etc/rc.local script. Questo file viene eseguito dopo che tutti gli altri script a livello di inizializzazione sono stati eseguiti, quindi è sicuro inserire i vari comandi che si desidera vengano eseguiti all'avvio. Molte volte inserirò istruzioni di montaggio per cose come nfs in questo script. Questo è anche un buon posto in cui inserire gli script di 'risoluzione dei problemi'. Ad esempio, una volta che avevo una macchina che, per qualche motivo, samba sembrava non volesse avviarsi. Anche dopo aver verificato che il demone Samba fosse configurato per l'inizializzazione all'avvio. Quindi, invece di passare tutto il mio tempo in anticipo con questo, ho semplicemente posizionato la linea:
/etc/init.d/samba start
nel /etc/rc.local script e Samba hanno funzionato alla grande. Alla fine sarei tornato e avrei risolto il problema.
Pensieri finali
Linux è flessibile. Linux è così flessibile che ci sono quasi, inevitabilmente, numerosi modi per risolvere un singolo problema. L'avvio di un servizio di sistema è uno di questi problemi. Con l'aiuto di /etc/init.d sistema (così come /etc/rc.local ) puoi essere certo che il tuo servizio inizierà.