|
|||||||
|
|
INITSection: Linux System Administrator's Manual (8)Updated: 29 ottobre 1996 Index Return to Main Contents NOMEinit, telinit - inizializzatore del controllore dei processiSINTASSI/sbin/init [ -t sec ] [ 0123456SsQq ]/sbin/telinit [ -t sec ] [ 0123456sSQqabc ] DESCRIZIONEInitInit è il padre di tutti i processi. Il suo compito principale è di creare processi da uno script immagazzinato nel file /etc/inittab (si veda inittab(5)). Questo file ha, di solito, delle voci che fanno sì che init avvii getty su ogni riga nella quale possono loggarsi gli utenti. Controlla anche processi autonomi richiesti da qualsiasi sistema.RUNLEVELUn runlevel è una configurazione software del sistema che permette l'esistenza solo di un gruppo selezionato di processi. I processi avviati da init per ognuno di questi runlevel sono definiti nel file /etc/inittab. Init può essere in uno degli otto runlevel, 0-6 e S o s. Il runlevel è cambiato da un utente privilegiato lanciando /sbin/telinit, il quale invia un segnale appropriato a init, indicandogli a quale runlevel passare.I runlevel 0, 1 e 6 sono riservati. Il runlevel 0 è usato per fermare (halt) il sistema, il runlevel 6 è usato per riavviare (reboot) il sistema e il runlevel 1 è usato per portare il sistema in single user mode. Il runlevel S non è in realtà pensato per essere usato direttamente, ma più che altro per gli script che sono eseguiti quando si entra nel runlevel 1. Per maggiori informazioni su questo, si vedano le pagine di manuale di shutdown(1) e inittab(5). Sono validi anche i runlevel 7-9, sebbene non realmente documentati. Ciò perché le varianti di Unix "tradizionali" non li usano. Nel caso lo si voglia sapere, i runlevel S e s sono di fatto lo stesso. Internamente sono un alias per lo stesso runlevel - ciò è solo un rimasuglio del modo che l'autore usò quando scrisse sysvinit. AVVIAMENTODopo che init è lanciato come ultimo passo dell'avvio (boot) del kernel, cerca se nel file /etc/inittab c'è una voce del tipo initdefault (si veda inittab(5)). initdefault specifica il runlevel iniziale del sistema. Se non c'è tale voce o non c'è il file /etc/inittab, un runlevel deve essere immesso nella console del sistema.Il runlevel S o s porta il sistema in modalità utente singolo (single user mode) e non necessita del file /etc/inittab. In modalità single user, è lanciato /bin/sh in /dev/console. Quando si entra in single user mode, init legge lo stato ioctl(2) della console da /etc/ioctl.save. Se questo file non esiste, init inizializza la linea a 9600 baud e con le impostazioni CLOCAL. Quando init lascia il single user mode, salva le impostazioni ioctl della console in questo file cosicché possa riusarli nella successiva sessione in single-user. Quando si entra per la prima volta in modalità multiutente, init esegue le voci boot e bootwait che permettono al filesystem di essere montato prima che un utente possa loggarsi. Poi sono eseguite tutte le voci corrispondenti al runlevel. Quando avvia un nuovo processo, init per prima cosa guarda se esiste il file /etc/initscript. Se c'è, usa questo script per far partire il processo. Ogni volta che un processo figlio termina, init salva questo fatto e la ragione per la quale è morto nei file /var/run/utmp e /var/log/wtmp (se esistono). CAMBIO DI RUNLEVELDopo aver avviato tutti i processi specificati, init aspetta che uno dei suoi processi figlio muoia, un segnale di powerfail, o fino a che non riceve un segnale da /sbin/telinit per cambiare il runlevel del sistema. Quando avviene una delle tre condizioni suddette, riesamina il file /etc/inittab. A questo file possono essere aggiunte nuove voci quando si vuole. Comunque, init aspetta sempre che avvenga una delle tre condizioni suddette. Per ottenere una risposta istantanea, si possono usare i comandi Q o q per risvegliare init e fargli riesaminare il file /etc/inittab.Se init non è in single user mode e riceve un segnale di powerfail, saranno invocate apposite voci per il powerfail. Quando a init è richiesto di cambiare il runlevel, invia il segnale di avviso SIGTERM a tutti i processi che non sono definiti nel nuovo runlevel. Poi aspetta 5 secondi prima di terminare forzatamente questi processi tramite il segnale di kill SIGKILL. Si noti che init assume che tutti questi processi (e i loro discendenti) rimangano nello stesso gruppo di processi nel quale init li ha creati in origine. Se un qualsiasi processo cambia il suo process group non riceverà questi segnali. Questi processi devono essere terminati a parte. TELINIT/sbin/telinit è linkato a /sbin/init. Accetta un carattere singolo come argomento e segnala a init di effettuare le azioni appropriate. I seguenti argomenti servono come direttive a /sbin/telinit:
/sbin/telinit può dire a init anche quanto tempo dovrebbe attendere tra l'invio ai processi del TERM signal e l'invio del KILL signal; di default è 5 secondi, ma può essere cambiato con l'opzione -t sec. /sbin/telinit può essere invocato solo da utenti con i privilegi appositi. FILE/etc/inittab /etc/initscript /dev/console /etc/ioctl.save /var/run/utmp /var/log/wtmp /dev/initctl AMBIENTEInit imposta le seguenti variabili d'ambiente per tutti i suoi figli:
BOOTFLAGÈ possibile passare diverse opzioni a init dal bootmonitor (p.es. LILO). Init accetta i flag seguenti:
CONFORME AInit è compatibile con il System V init. Lavora in stretto ``contatto'' con gli script nelle directory /etc/init.d e /etc/rc{runlevel}.d. Se il proprio sistema usa queste convenzioni, ci dovrebbe essere un file README nella directory /etc/init.d che spiega come funzionano questi script.AVVERTENZEInit assume che i processi e i loro discendenti rimangano nello stesso process group che è stato originariamente creato per loro. Se i processi cambiano il loro gruppo, init non può killarli e si potrebbe finire con due processi che leggono da una linea del terminale.DIAGNOSTICASe /sbin/init si accorge che sta eseguendo una voce per più di 10 volte in 2 minuti, assumerà che ci sia un errore nella stringa di comando, e genererà un messaggio d'errore nella console del sistema, e si rifiuterà di rieseguire questa voce finché non siano passati 5 minuti o riceva un signal. Ciò per evitare che init si ``mangi'' tutte le risorse del sistema quando qualcuno fa un errore tipografico nel file /etc/inittab o è rimosso il programma che deve essere lanciato nella voce.AUTOREMiquel van Smoorenburg (miquels@cistron.nl), pagina di manuale iniziale di Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de).Traduzione di Giovanni Bortolozzo <borto@dei.unipd.it> VEDERE ANCHEgetty(1), login(1), sh(1), who(1), shutdown(1), kill(2), inittab(5), initscript(5), utmp(5)
Index
| ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man8". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |