Loading

NOM

       init, telinit - initialisation du contrôle des processus.

SYNOPSIS

       /sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx ] [ 0123456Ss ]
       /sbin/telinit [ -t SECONDES ] [ 0123456sSQqabcUu ]
       /sbin/telinit [ -e VAR[=VAL] ]

   Init
       init  est  le  parent  de tous les processus. Son rôle principal est de
       créer des processus à partir d’un script stocké dans /etc/inittab (voir
       inittab(5)).  Ce  fichier  comporte  généralement des entrées qui force
       init à lancer des getty sur  chacune  des  lignes  sur  lesquelles  des
       utilisateurs  peuvent se connecter. Il contrôle également des processus
       autonomes nécessaire pour chaque système particulier.

NIVEAUX DEXÉCUTION
       Un niveau d'exécution est une configuration logicielle du système qui
       permet  à  seulement  un  certain  groupe  de  processus d’exister. Les
       processus lancés par init pour chacun de ces niveaux  d’exécution  sont
       définis  dans  le fichier /etc/inittab. init peut être dans un des huit
       niveaux d’exécution : 06 et S (alias s). Le  niveau  d’exécution  peut
       être  modifié  par un superutilisateur en exécutant telinit, qui envoie
       les  signaux  appropriés  à  init,  lui  indiquant  dans  quel   niveau
       d’exécution se placer.

       Les  niveaux  d’exécution  S,  0,  1  et  6  sont  réservés.  Le niveau
       d’exécution S est utilisé pour initialiser  le  système  au  démarrage.
       Lors  du  lancement du niveau d’exécution S (au démarrage) ou 1 (depuis
       un niveau d’exécution  multiutilisateur),  le  système  entre  dans  le
       « mode mono-utilisateur », après lequel le niveau d’exécution est S. Le
       niveau d’exécution 0 est utilisé pour arrêter le  système ;  le  niveau
       d’exécution 6 sert au redémarrage du système.

       Après  avoir démarré dans le niveau S, le système entre automatiquement
       dans un des niveaux multiutilisateurs 2 à 5, à moins qu’il n’y  ait  eu
       des   problèmes   qui   nécessite   une  correction  de  la  part  d’un
       administrateur en mode mono-utilisateur. Normalement, après être entrée
       dans   le   mode   mono-utilisateur,   un  administrateur  effectue  la
       maintenance puis redémarre le système.

       Pour plus d’informations, voir les pages de manuel  de  shutdown(8)  et
       inittab(5).

       Les  niveaux  d’exécution  7  à  9  sont  également  valables, mais pas
       vraiment  documenté.  La  raison   pour   cela   est   que   les   Unix
       « traditionnels » ne les utilisent pas.

       Les niveaux d’exécution S et s sont équivalents. Ils sont considérés en
       interne comme des alias vers les même niveaux.

DÉMARRAGE

       Après qu’init ait été appelé comme dernière étape  de  la  séquence  de
       démarrage  du  noyau, il regarde dans la fichier /etc/inittab pour voir
       s’il y a une entrée du type  initdefault  (voir  inittab(5)).  L’entrée
       initdefault  détermine  le  niveau d’exécution initial du système. S’il
       n’y a pas de telle entrée (ou pas de /etc/inittab du tout),  un  niveau
       d’exécution doit être entré sur la console système.

       Les  niveaux d’exécution S ou s initialisent le système et ne nécessite
       pas de fichier /etc/inittab.

       Dans  le  mode  mono-utilisateur,   /sbin/sulogin   est   invoqué   sur
       /dev/console.

       Quand  il  entre  dans  le  mode  mono-utilisateur, init initialise les
       paramètres des consoles stty à des valeurs saines. Le mode  clocal  est
       configuré.  La  vitesse  matérielle  et  le  mode d’établissement d’une
       liaison ne sont pas changés.

       Quand il entre dans un mode multi-utilisateurs pour la  première  fois,
       init  exécute  les entrées boot et bootwait pour permettre aux systèmes
       de fichier  de  se  monter  avant  que  les  utilisateurs  puissent  se
       connecter.   Ensuite,   toutes  les  entrées  correspondant  au  niveau
       d’exécution sont exécutées.

       Lorsqu’il démarre un nouveau processus,  init  vérifie  d’abord  si  le
       fichier /etc/initscript existe. S’il existe, il utilise ce fichier pour
       démarrer le processus.

       Chaque fois qu’un fils se termine, init enregistre ceci  et  la  raison
       pour  laquelle  il est mort dans /var/run/utmp et /var/log/wtmp, si ces
       fichiers existent.

CHANGEMENT DE NIVEAU DEXÉCUTION
       Après qu’il ait exécuté tous les processus spécifiés, init attend qu’un
       de ses fils meurt, qu’un signal indiquant une perte de puissance arrive
       ou qu’un signal de telinit lui indique qu’il  faut  changer  le  niveau
       d’exécution  du  système. Quand une de ces trois conditions se produit,
       il réexamine le fichier /etc/inittab. De nouvelle entrées peuvent  être
       ajoutées  à  ce fichier à n’importe quel moment. Cependant, init attend
       qu’une de ces condition se produise. Pour que le fichier soit  pris  en
       compte  immédiatement,  la  commande telinit Q ou q permet de réveiller
       init pour qu’il réexamine le fichier /etc/inittab.

       Si init n’est pas dans le mode mono-utilisateur  et  reçoit  un  signal
       indiquant   une   perte  de  puissance  (SIGPWR),  il  lit  le  fichier
       /etc/powerstatus. Il  démarre  ensuite  une  commande  en  fonction  du
       contenu de ce fichier :

       F(AIL) (échec)
              Plus  d’alimentation,  l’UPS  fournit la puissance. Exécuter les
              entrées powerwait et powerfail.

       O(K)   L’alimentation a été rétablie, exécuter les entrées powerokwait.

       L(OW) (bas)
              Plus  d’alimentation  et  le  niveau de la batterie de l’UPS est
              faible. Exécuter les entrées powerfailnow.

       Si le fichier /etc/powerstatus n’existe pas ou contient autre chose que
       les  lettres F, O ou L, init se comportera comme si la lettre F y avait
       été lu.

       L’utilisation de SIGPWR et de  /etc/powerstatus  n’est  pas  conseillé.
       Pour  interagir  avec  init  il  est  préférable d’utiliser le canal de
       contrôle /dev/initctl ; consultez le code source de sysvinit pour  plus
       de documentation à ce sujet.

       Quand  on  demande à init de changer de niveau d’exécution, il envoi le
       signal d’avertissement SIGTERM à tous les processus  qui  ne  sont  pas
       définis  dans  le  nouveau  niveau  d’exécution.  Il  attend  ensuite 5
       secondes avant de forcer  l’arrêt  de  ces  processus  avec  le  signal
       -1SIGKILL .  Notez  que  init  suppose  que tous ces processus (et leur
       fils) restent dans le même groupe de processus que  init  a  créé  pour
       eux.  Si  un processus change son affiliation à un groupe de processus,
       il ne recevra pas  ces  signaux.  Ces  processus  doivent  être  arrêté
       séparément.

TELINIT

       /sbin/telinit  est  un  lien vers /bin/init. Il prend un paramètre d’un
       caractère et  signale  à  init  d’effectuer  l’action  appropriée.  Les
       paramètres suivants servent de directive à telinit :

       0,1,2,3,4,5 ou 6
              Demander à init de passer au niveau d’exécution spécifié.

       a,b,c  Demander  à  init  de  ne  traiter  que  les  entrées du fichier
              /etc/inittab du niveau d’exécution a, b ou c.

       Q ou q Demander à init de réexaminer le fichier /etc/inittab.

       S ou s Demander à init de passer en mode mono-utilisateur

       U ou u Demander à init de  se  relancer  lui-même  (en  préservant  son
              état).  Le  fichier  /etc/inittab n’est pas réexaminé. Le niveau
              d’exécution doit être un des niveaux Ss0123456, sinon la requête
              est ignorée silencieusement.

       telinit peut demander à init combien de temps il devrait attendre entre
       l’envoi des signaux SIGTERM et SIGKILL aux  processus.  La  valeur  par
       défaut est de 5 secondes, mais peut être changée avec l’option -t.

       telinit  -e  demande  à  init  de changer l’environnement des processus
       qu’il lance. Le paramètre de -e est  soit  de  la  forme  VAR=VAL,  qui
       positionne  la  variable  VAR à la valeur VAL, ou de la forme VAR (sans
       signe égal), qui retire la variable VAR.

       telinit ne peut être appelé que par les utilisateurs  avec  les  droits
       appropriés.

       Le  binaire  init  s’il  s’agit  d’init  ou  de  telinit en fonction de
       l’identifiant  du  processus ;  le  véritable  init   a   toujours   un
       identifiant  égal à 1. Grâce à cela il est possible également d’appeler
       init au lieu de telinit, comme raccourcis.

ENVIRONNEMENT

       init configure les variables d’environnement suivantes  pour  tous  ses
       fils :

       PATH   /bin:/usr/bin:/sbin:/usr/sbin

       INIT_VERSION
              Comme  le  nom l’indique. Utile pour déterminer si un script est
              exécuté directement par init.

       RUNLEVEL
              Le niveau d’exécution courant du système.

       PREVLEVEL
              Le niveau d’exécution précédent (utile après  un  changement  de
              niveau d’exécution).

       CONSOLE
              La  console  système. Ceci provient du noyau ; cependant si elle
              n’existe pas, init la positionne à /dev/console par défaut.

BOOTFLAGS

       Il est possible de fournir un certain nombre d’options à init depuis le
       gestionnaire  de démarrage (par exemple LILO). init accepte les options
       suivantes :

       -s, S, single
            Démarrage en mode mono-utilisateur. Dans ce mode, /etc/inittab est
            examiné  et  les  scripts rc de démarrage sont généralement lancés
            avant  que  l’interpréteur  de  commande  du  mono-utilisateur  ne
            commence.

       1-5  Niveau d’exécuter dans lequel il faut démarrer.

       -b, emergency
            Démarrer   directement   un   interpréteur  de  commande  en  mode
            mono-utilisateur sans lancé aucun autre script de démarrage.

       -a, auto
            Le gestionnaire de démarrage LILO ajoute le mot  « auto »  sur  la
            ligne  de  commande  pour  les  démarrages  utilisant  le ligne de
            commande par défaut (sans intervention d’un utilisateur). Dans  ce
            cas, init positionne la variable d’environnement « AUTOBOOT » à la
            valeur « yes ». Notez que vous ne pouvez utiliser ceci à des  fins
            sécuritaires ;  un utilisateur pouvant bien sûr spécifier « auto »
            ou ajouter l’option -a manuellement sur la ligne de commande.

       -z xxx
            Le paramètre de -z est ignoré.  Vous  pouvez  utiliser  ceci  pour
            étendre  légèrement la ligne de commande, pour qu’elle prenne plus
            de place sur la pile. init peut  ensuite  manipuler  la  ligne  de
            commande  de  telle  sorte que ps(1) affiche le niveau d’exécution
            actuel.

INTERFACE

       init écoute sur une fifo dans  /dev,  /dev/initctl  dans  l’attente  de
       messages.  telinit utilise ceci pour communiquer avec init. L’interface
       n’est pas très  documentée  ou  finalisée.  Les  personnes  intéressées
       devraient  étudier le fichier initreq.h dans le sous-répertoire src/ de
       l’archive tar des source d’init.

SIGNAUX

       init réagit à plusieurs signaux :

       SIGHUP
            Identique à telinit q.

       SIGUSR1
            Lors de la réception de ces signaux, init ferme et réouvre sa fifo
            de  contrôle,  /dev/initctl.  Ceci  est  utile pour les scripts de
            démarrage quand /dev est remonté.

       SIGINT
            Normalement le noyau envoie ce signal à init quand la  combinaison
            CTRL-ALT-SUPPR est pressée. Ceci active l’action ctrlaltdel.

       SIGWINCH
            Le  noyau  envoie  ce  signal  quand  la touche KeyboardSignal est
            pressée. Ceci active l’action kbrequest.

CONFORMITÉ

       init est compatible avec l’init de Système V. Il collabore  étroitement
       avec     les     scripts     des     répertoires     /etc/init.d     et
       /etc/rc{niveau_excution}.d. Si votre système utilise cette convention,
       il devrait y avoir un fichier README dans le répertoire /etc/init.d qui
       explique comment ces scripts fonctionnent.

FICHIERS

       /etc/inittab
       /etc/initscript
       /dev/console
       /var/run/utmp
       /var/log/wtmp
       /dev/initctl

AVERTISSEMENTS

       init suppose que les processus et leurs  descendants  restent  dans  le
       même  groupe  de processus créé initialement pour eux. Si les processus
       changent leur groupe, init ne peut pas les tuer et cela peut conduire à
       avoir deux processus qui lisent la même ligne de terminal.

       Sur  un  système Debian, entrer dans le niveau d’exécution 1 force tous
       les processus à être tués à l’exception des  threads  du  noyau  et  du
       script  qui  s’occupe  de tuer les autre processus ainsi que les autres
       processus de sa session. En conséquence, il n’est pas sûr de passer  du
       niveau d’exécution 1 vers un niveau d’exécution multi-utilisateur : les
       démons qui étaient démarré dans le niveau d’exécution  S  et  qui  sont
       nécessaire  au  bon fonctionnement ne tournent plus. Le système devrait
       être redémarré.

DIAGNOSTIC

       Si init trouve qu’il n’arrête pas de relancer une entrée  (plus  de  10
       fois  en  deux  minutes),  il  supposera  qu’il  y a une erreur dans la
       commande, générera une erreur sur la console  système  et  refusera  de
       relancer cette entrée à moins que 5 minutes se soient écoulées ou qu’il
       ait reçu un signal. Ceci permet d’éviter de  consommer  des  ressources
       système  quand  quelqu’un  a  fait  une faute de frappe dans le fichier
       /etc/inittab ou que le programme de l’entrée a été supprimé.

AUTEUR

       Miquel van Smoorenburg (miquels@cistron.nl), page de manuel  originelle
       de Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de).

VOIR AUSSI

       getty(1),   login(1),   sh(1),   runlevel(8),   shutdown(8),   kill(1),
       inittab(5), initscript(5), utmp(5)

TRADUCTION

       La traduction de cette page de manuel est maintenue par les membres  de
       la  liste  <debian-l10n-french  AT lists DOT debian DOT org>.  Veuillez
       signaler toute erreur de traduction par un  rapport  de  bogue  sur  le
       paquet manpages-fr-extra.

                                29 juillet 2004