Provided by: manpages-it_0.3.4-5_all bug
 

NOME

        init, telinit - inizializzatore del controllore dei processi
 

SINTASSI

        /sbin/init [ -t sec ] [ 0123456SsQq ]
        /sbin/telinit [ -t sec ] [ 0123456sSQqabc ]
 

DESCRIZIONE

    Init
        Init  è  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 sis‐
        tema.
 

RUNLEVEL

        Un 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, indican‐
        dogli 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 sis‐
        tema e il runlevel 1 è usato per portare  il  sistema  in  single  user
        mode.  Il  runlevel S non è in realtà pensato per essere usato diretta‐
        mente, 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. Interna‐
        mente  sono  un alias per lo stesso runlevel - ciò è solo un rimasuglio
        del modo che l’autore usò quando scrisse sysvinit.
 

AVVIAMENTO

        Dopo che init è lanciato come ultimo passo dell’avvio (boot)  del  ker‐
        nel,  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 run‐
        level 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  sin‐
        gle-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 pro‐
        cesso.
 
        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).
        Dopo 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  pos‐
        sono  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  run‐
        level.   Poi  aspetta  5 secondi prima di terminare forzatamente questi
        processi tramite il segnale di kill SIGKILL. Si noti che  init  suppone
        che tutti questi processi (e i loro discendenti) rimangano nello stesso
        gruppo di processi nel quale init li ha creati in origine. Se un  qual‐
        siasi 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:
 
        0,1,2,3,4,5 o 6
               dicono a /sbin/init di passare al runlevel specificato.
 
        a,b,c  dicono a /sbin/init di processare  solo  quelle  voci  del  file
               /etc/inittab che hanno runlevel a,b o c.
 
        Q o q  dice a /sbin/init di riesaminare il file /etc/inittab.
 
        S o s  dice a /sbin/init di passare in single user mode.
 
        /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
 

AMBIENTE

        Init imposta le seguenti variabili d’ambiente per tutti i suoi figli:
 
        PATH   Di default a /bin:/usr/bin:
 
        INIT_VERSION
               A quel che dice il nome. Utile per determinare se uno  script  è
               stato lanciato direttamente da init.
 
        RUNLEVEL
               Il runlevel attuale del sistema.
 
        PREVLEVEL
               Il runlevel precedente (utile dopo un cambio di runlevel).
 

BOOTFLAG

        È  possibile  passare  diverse  opzioni  a  init dal bootmonitor (p.es.
        LILO). Init accetta i flag seguenti:
 
        S, single
             Boot  in  single  user  mode.  In  questa  modalità  è   esaminato
             /etc/inittab  e  lo  script rc bootp è di solito eseguito prima di
             avviare la shell del single user mode.
 
        1-5  Runlevel nei quali fare il boot.
 
        -b, emergency
             Fa il boot direttamente nella single  user  shell  senza  lanciare
             nessun altro script di startup.
        Init è 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.
 

AVVERTENZE

        Init suppone che i processi e i loro discendenti rimangano nello stesso
        process group che è stato originariamente creato per loro.  Se  i  pro‐
        cessi  cambiano  il  loro  gruppo,  init non può killarli e si potrebbe
        finire con due processi che leggono da una linea del terminale.
 

DIAGNOSTICA

        Se /sbin/init si accorge che sta eseguendo una voce per più di 10 volte
        in 2 minuti, supponerà che ci sia un errore nella stringa di comando, e
        genererà un messaggio d’errore nella console del sistema,  e  si  rifi‐
        uterà  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.
 

AUTORE

        Miquel 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>
        getty(1), login(1), sh(1), who(1),  shutdown(1),  kill(2),  inittab(5),
        initscript(5), utmp(5)
 
                                 29 ottobre 1996                        INIT(8)