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
       sistema.

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, 06 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.

AVVIAMENTO

       Dopo 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 RUNLEVEL

       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
       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 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
       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:

       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.

CONFORME A

       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
       processi 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
       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.

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>

VEDERE ANCHE

       getty(1),  login(1),  sh(1),  who(1), shutdown(1), kill(2), inittab(5),
       initscript(5), utmp(5)

                                29 ottobre 1996                        INIT(8)