Provided by:
manpages-fr-extra_20101103_all 
NOM
init, telinit - Initialisation du controle des processus
SYNOPSIS
/sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx ] [ 0123456Ss ]
/sbin/telinit [ -t SECONDES ] [ 0123456sSQqabcUu ]
/sbin/telinit [ -e VAR[=VAL] ]
DESCRIPTION
Init
init est le parent de tous les processus. Son role principal est de
creer des processus a partir d'un script stocke dans /etc/inittab (voir
inittab(5)). Ce fichier comporte generalement des entrees qui force
init a lancer des getty sur chacune des lignes sur lesquelles des
utilisateurs peuvent se connecter. Il controle egalement des processus
autonomes necessaire pour chaque systeme particulier.
NIVEAUX D'EX'ECUTION
Un niveau d'ex'ecution est une configuration logicielle du systeme qui
permet a seulement un certain groupe de processus d'exister. Les
processus lances par init pour chacun de ces niveaux d'execution sont
definis dans le fichier /etc/inittab. init peut etre dans un des huit
niveaux d'execution : 0-6 et S (alias s). Le niveau d'execution peut
etre modifie par un superutilisateur en executant telinit, qui envoie
les signaux appropries a init, lui indiquant dans quel niveau
d'execution se placer.
Les niveaux d'execution S, 0, 1 et 6 sont reserves. Le niveau
d'execution S est utilise pour initialiser le systeme au demarrage.
Lors du lancement du niveau d'execution S (au demarrage) ou 1 (depuis
un niveau d'execution multiutilisateur), le systeme entre dans le
<< mode mono-utilisateur >>, apres lequel le niveau d'execution est S.
Le niveau d'execution 0 est utilise pour arreter le systeme ; le niveau
d'execution 6 sert au redemarrage du systeme.
Apres avoir demarre dans le niveau S, le systeme entre automatiquement
dans un des niveaux multiutilisateurs 2 a 5, a moins qu'il n'y ait eu
des problemes qui necessite une correction de la part d'un
administrateur en mode mono-utilisateur. Normalement, apres etre entree
dans le mode mono-utilisateur, un administrateur effectue la
maintenance puis redemarre le systeme.
Pour plus d'informations, voir les pages de manuel de shutdown(8) et
inittab(5).
Les niveaux d'execution 7 a 9 sont egalement valables, mais pas
vraiment documente. La raison pour cela est que les Unix
<< traditionnels >> ne les utilisent pas.
Les niveaux d'execution S et s sont equivalents. Ils sont consideres en
interne comme des alias vers les meme niveaux.
D'EMARRAGE
Apres qu'init ait ete appele comme derniere etape de la sequence de
demarrage du noyau, il regarde dans la fichier /etc/inittab pour voir
s'il y a une entree du type initdefault (voir inittab(5)). L'entree
initdefault determine le niveau d'execution initial du systeme. S'il
n'y a pas de telle entree (ou pas de /etc/inittab du tout), un niveau
d'execution doit etre entre sur la console systeme.
Les niveaux d'execution S ou s initialisent le systeme et ne necessite
pas de fichier /etc/inittab.
Dans le mode mono-utilisateur, /sbin/sulogin est invoque sur
/dev/console.
Quand il entre dans le mode mono-utilisateur, init initialise les
parametres des consoles stty a des valeurs saines. Le mode clocal est
configure. La vitesse materielle et le mode d'etablissement d'une
liaison ne sont pas changes.
Quand il entre dans un mode multi-utilisateurs pour la premiere fois,
init execute les entrees boot et bootwait pour permettre aux systemes
de fichier de se monter avant que les utilisateurs puissent se
connecter. Ensuite, toutes les entrees correspondant au niveau
d'execution sont executees.
Lorsqu'il demarre un nouveau processus, init verifie d'abord si le
fichier /etc/initscript existe. S'il existe, il utilise ce fichier pour
demarrer 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 D'EX'ECUTION
Apres qu'il ait execute tous les processus specifies, 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'execution du systeme. Quand une de ces trois conditions se produit,
il reexamine le fichier /etc/inittab. De nouvelle entrees peuvent etre
ajoutees a ce fichier a n'importe quel moment. Cependant, init attend
qu'une de ces condition se produise. Pour que le fichier soit pris en
compte immediatement, la commande telinit Q ou q permet de reveiller
init pour qu'il reexamine le fichier /etc/inittab.
Si init n'est pas dans le mode mono-utilisateur et recoit un signal
indiquant une perte de puissance (SIGPWR), il lit le fichier
/etc/powerstatus. Il demarre ensuite une commande en fonction du
contenu de ce fichier :
F(AIL) (echec)
Plus d'alimentation, l'UPS fournit la puissance. Executer les
entrees powerwait et powerfail.
O(K) L'alimentation a ete retablie, executer les entrees powerokwait.
L(OW) (bas)
Plus d'alimentation et le niveau de la batterie de l'UPS est
faible. Executer les entrees 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
ete lu.
L'utilisation de SIGPWR et de /etc/powerstatus n'est pas conseille.
Pour interagir avec init il est preferable d'utiliser le canal de
controle /dev/initctl ; consultez le code source de sysvinit pour plus
de documentation a ce sujet.
Quand on demande a init de changer de niveau d'execution, il envoi le
signal d'avertissement SIGTERM a tous les processus qui ne sont pas
definis dans le nouveau niveau d'execution. Il attend ensuite 5
secondes avant de forcer l'arret de ces processus avec le signal
-1SIGKILL . Notez que init suppose que tous ces processus (et leur
fils) restent dans le meme groupe de processus que init a cree pour
eux. Si un processus change son affiliation a un groupe de processus,
il ne recevra pas ces signaux. Ces processus doivent etre arrete
separement.
TELINIT
/sbin/telinit est un lien vers /bin/init. Il prend un parametre d'un
caractere et signale a init d'effectuer l'action appropriee. Les
parametres suivants servent de directive a telinit :
0,1,2,3,4,5 ou 6
Demander a init de passer au niveau d'execution specifie.
a,b,c Demander a init de ne traiter que les entrees du fichier
/etc/inittab du niveau d'execution a, b ou c.
Q ou q Demander a init de reexaminer le fichier /etc/inittab.
S ou s Demander a init de passer en mode mono-utilisateur
U ou u Demander a init de se relancer lui-meme (en preservant son
etat). Le fichier /etc/inittab n'est pas reexamine. Le niveau
d'execution doit etre un des niveaux Ss0123456, sinon la requete
est ignoree silencieusement.
telinit peut demander a init combien de temps il devrait attendre entre
l'envoi des signaux SIGTERM et SIGKILL aux processus. La valeur par
defaut est de 5 secondes, mais peut etre changee avec l'option -t.
telinit -e demande a init de changer l'environnement des processus
qu'il lance. Le parametre de -e est soit de la forme VAR=VAL, qui
positionne la variable VAR a la valeur VAL, ou de la forme VAR (sans
signe egal), qui retire la variable VAR.
telinit ne peut etre appele que par les utilisateurs avec les droits
appropries.
Le binaire init s'il s'agit d'init ou de telinit en fonction de
l'identifiant du processus ; le veritable init a toujours un
identifiant egal a 1. Grace a cela il est possible egalement 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 determiner si un script est
execute directement par init.
RUNLEVEL
Le niveau d'execution courant du systeme.
PREVLEVEL
Le niveau d'execution precedent (utile apres un changement de
niveau d'execution).
CONSOLE
La console systeme. Ceci provient du noyau ; cependant si elle
n'existe pas, init la positionne a /dev/console par defaut.
BOOTFLAGS
Il est possible de fournir un certain nombre d'options a init depuis le
gestionnaire de demarrage (par exemple LILO). init accepte les options
suivantes :
-s, S, single
Demarrage en mode mono-utilisateur. Dans ce mode, /etc/inittab est
examine et les scripts rc de demarrage sont generalement lances
avant que l'interpreteur de commande du mono-utilisateur ne
commence.
1-5 Niveau d'executer dans lequel il faut demarrer.
-b, emergency
Demarrer directement un interpreteur de commande en mode
mono-utilisateur sans lance aucun autre script de demarrage.
-a, auto
Le gestionnaire de demarrage LILO ajoute le mot << auto >> sur la
ligne de commande pour les demarrages utilisant le ligne de
commande par defaut (sans intervention d'un utilisateur). Dans ce
cas, init positionne la variable d'environnement << AUTOBOOT >> a
la valeur << yes >>. Notez que vous ne pouvez utiliser ceci a des
fins securitaires ; un utilisateur pouvant bien sur specifier
<< auto >> ou ajouter l'option -a manuellement sur la ligne de
commande.
-z xxx
Le parametre de -z est ignore. Vous pouvez utiliser ceci pour
etendre legerement 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'execution
actuel.
INTERFACE
init ecoute sur une fifo dans /dev, /dev/initctl dans l'attente de
messages. telinit utilise ceci pour communiquer avec init. L'interface
n'est pas tres documentee ou finalisee. Les personnes interessees
devraient etudier le fichier initreq.h dans le sous-repertoire src/ de
l'archive tar des source d'init.
SIGNAUX
init reagit a plusieurs signaux :
SIGHUP
Identique a telinit q.
SIGUSR1
Lors de la reception de ces signaux, init ferme et reouvre sa fifo
de controle, /dev/initctl. Ceci est utile pour les scripts de
demarrage quand /dev est remonte.
SIGINT
Normalement le noyau envoie ce signal a init quand la combinaison
CTRL-ALT-SUPPR est pressee. Ceci active l'action ctrlaltdel.
SIGWINCH
Le noyau envoie ce signal quand la touche KeyboardSignal est
pressee. Ceci active l'action kbrequest.
CONFORMIT'E
init est compatible avec l'init de Systeme V. Il collabore etroitement
avec les scripts des repertoires /etc/init.d et
/etc/rc{niveau_ex'ecution}.d. Si votre systeme utilise cette convention,
il devrait y avoir un fichier README dans le repertoire /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
meme groupe de processus cree initialement pour eux. Si les processus
changent leur groupe, init ne peut pas les tuer et cela peut conduire a
avoir deux processus qui lisent la meme ligne de terminal.
Sur un systeme Debian, entrer dans le niveau d'execution 1 force tous
les processus a etre tues a 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 consequence, il n'est pas sur de passer du
niveau d'execution 1 vers un niveau d'execution multi-utilisateur : les
demons qui etaient demarre dans le niveau d'execution S et qui sont
necessaire au bon fonctionnement ne tournent plus. Le systeme devrait
etre redemarre.
DIAGNOSTIC
Si init trouve qu'il n'arrete pas de relancer une entree (plus de 10
fois en deux minutes), il supposera qu'il y a une erreur dans la
commande, generera une erreur sur la console systeme et refusera de
relancer cette entree a moins que 5 minutes se soient ecoulees ou qu'il
ait recu un signal. Ceci permet d'eviter de consommer des ressources
systeme quand quelqu'un a fait une faute de frappe dans le fichier
/etc/inittab ou que le programme de l'entree a ete supprime.
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 INIT(8)