La versione inglese di questo articolo proviene da: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
1. Informazioni su /etc/init.d Se hai mai usato un sistema Linux, allora hai sentito parlare della directory init.d. A cosa serve esattamente questo catalogo? Alla fine della giornata fa solo una cosa, ma non è una cosa banale, si fa per tutto il sistema, quindi è molto importante. La directory init.d contiene molti script di start e stop per vari servizi del sistema. Controlla tutto, da acpid a x11-common. Ovviamente, init.d è tutt'altro che così semplice. (Nota del traduttore: ACPID è un nuovo standard di gestione dell'energia per sistemi operativi Linux; X11 è anche chiamato sistema X Window, X Window system (X11 o X) è un sistema a finestre con visualizzazione bitmap. È un toolkit e un protocollo standard per costruire interfacce grafiche utente su sistemi operativi Unix e simili a Unix, così come su OpenVMS, e può essere utilizzato per quasi tutti i sistemi operativi moderni. Quando guardi la directory /etc, troverai molte directory che esistono sotto forma di rc#.d (dove # rappresenta un livello di inizializzazione specificato, l'intervallo è 0~6). In queste directory, ci sono molti script che controllano il processo. Questi script iniziano con una "K" o una "S". Gli script che iniziano con K eseguono prima di quelli che iniziano con S. La posizione di questi script determinerà quando inizieranno a essere eseguiti. Tra queste directory, i servizi di sistema lavorano insieme come una macchina sana. Tuttavia, a volte vuoi avviare o uccidere un processo in modo pulito senza usare i comandi kill o killall. Ed è qui che /etc/init.d torna utile! Se usi un sistema Fedora, puoi trovare questa directory: /etc/rc.d/init.d. In realtà fa la stessa cosa ovunque tu metta init.d. Per poter usare script nella directory init.d, servono privilegi root o sudo. Ogni script verrà eseguito come comando, strutturato approssimativamente come segue: /etc/init.d/opzione comando Comand è il comando vero e proprio che si esegue, e le opzioni possono essere le seguenti: Inizio Fermati ricarica Riavvio ricarica forzata Nella maggior parte dei casi, userai le opzioni di avvio, fermo, riavvio. Ad esempio, se vuoi spegnere la rete, puoi usare un comando come questo:
/etc/init.d/networking stop Un altro esempio è che cambi le impostazioni della rete e devi riavviare la rete. Puoi usare comandi come questi: /etc/init.d/networking riavvio Gli script di inizializzazione comunemente usati nella directory init.d sono:
Networking Samba apache2 FTPD sshd colombaio mysql Ovviamente, potresti avere altri script più comunemente usati, a seconda del sistema operativo Linux che hai installato. 2. Informazioni su /etc/rc.local rc.local è anche uno script che uso molto. Lo script viene eseguito dopo che lo script a livello di inizializzazione del sistema è stato eseguito, quindi è sicuro aggiungere lo script che vuoi eseguire dopo l'avvio del sistema. Un caso comune è che puoi aggiungere uno script di montaggio/montaggio NFS. Puoi anche aggiungere alcuni comandi script per il debug all'interno. Ad esempio, mi è capitato di affrontare questa situazione in cui il servizio samba non funziona sempre correttamente, e l'ispezione mostra che samba avrebbe dovuto avviarsi ed eseguire durante l'avvio del sistema, cioè la configurazione del daemon samba garantisce che questa funzione venga eseguita correttamente. In questo caso, di solito non passo molto tempo a cercare il perché, devo solo aggiungere questa riga allo script /etc/rc.local: /ecc/init.d/inizio samba In questo modo, il problema dell'eccezione di servizio SAMBA fu risolto con successo.
3. Sommario Linux è flessibile. Grazie alla sua flessibilità, possiamo sempre trovare molti modi diversi per risolvere lo stesso problema. L'esempio di avviare un servizio di sistema è un buon esempio. Con lo script nella directory /etc/init.d, unito al potente strumento /etc/rc.local, puoi stare tranquillo che il tuo servizio funzionerà senza problemi.
|