Man page - init(8)
Packages contains this manual
Available languages:
en fr es pl pt ja deManual
INIT
NOMSYNOPSIS
DESCRIPTION
Init
NIVEAUX DâEXĂCUTION
DĂMARRAGE
CHANGEMENT DE NIVEAU DâEXĂCUTION
TELINIT
ENVIRONNEMENT
ATTRIBUTS DâAMORĂAGE
INTERFACE
SIGNAUX
CONFORMITĂ
FICHIERS
AVERTISSEMENTS
DIAGNOSTICS
AUTEUR
VOIR AUSSI
NOM
init, telinit â Initialisation du contrĂŽle des processus
SYNOPSIS
/sbin/init
[
-a
] [
-s
] [
-b
] [
-z
xxx
] [
0123456Ss
]
/sbin/init
[
--version
]
/sbin/telinit
[
-t
SECONDES
] [
0123456sSQqabcUu
]
/sbin/telinit
[
-e
VAR
[
=
VAL
]
]
DESCRIPTION
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 (consultez inittab (5)). Ce fichier comporte gĂ©nĂ©ralement des entrĂ©es qui forcent init Ă lancer des getty sur chacune des lignes sur lesquelles des utilisateurs peuvent se connecter. Il contrĂŽle Ă©galement des processus autonomes nĂ©cessaires pour chaque systĂšme particulier.
NIVEAUX DâEXĂCUTION
A runlevel is a software configuration of the system which allows only a selected group of processes to exist. The processes spawned by init for each of these runlevels are defined in the /etc/inittab file. init can be in one of eight runlevels: 0â6 and S (a.k.a., s ). The runlevel is changed by having a privileged user run telinit , which sends appropriate signals to init , telling it which runlevel to change to.
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 en « 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Ă©cessitent une correction de la part dâun administrateur en mode mono-utilisateur. Normalement, aprĂšs ĂȘtre entrĂ© en 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).
Runlevels 7â9 are also valid, though not really documented. This is because "traditional" Unix variants donât use them.
Les niveaux dâexĂ©cution S et s sont Ă©quivalents. Ils sont considĂ©rĂ©s en interne comme des alias vers les mĂȘmes niveaux.
DĂMARRAGE
After init is invoked as the last step of the kernel boot sequence, it looks for the file /etc/inittab to see if there is an entry of the type initdefault (see inittab (5)). The initdefault entry determines the initial runlevel of the system. If there is no such entry (or no /etc/inittab at all), a runlevel must be entered at the system console.
Les niveaux dâexĂ©cution S ou s initialisent le systĂšme et ne nĂ©cessitent pas de fichier /etc/inittab .
En mode mono-utilisateur, /sbin/sulogin est invoqué sur /dev/console .
When entering single user mode, init initializes the consoles stty settings to sane values. Clocal mode is set. Hardware speed and handshaking are not changed.
Quand il entre en mode multiutilisateur pour la premiĂšre fois, init exĂ©cute les entrĂ©es boot et bootwait pour permettre aux systĂšmes de fichiers 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.
When starting a new process, init first checks whether the file /etc/initscript exists. If it does, it uses this script to start the process.
Chaque fois quâun processus enfant se termine, init enregistre cela 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ĂCUTION
AprĂšs quâil ait engendrĂ© tous les processus indiquĂ©s, init attend quâun de ses processus enfant meure, 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 nouvelles entrĂ©es peuvent ĂȘtre ajoutĂ©es Ă ce fichier Ă nâimporte quel moment. Cependant, init attend quâune de ces conditions 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 (recharge) le fichier /etc/inittab .
If
init
is not in single user mode and receives a powerfail signal
(SIGPWR), it reads the file
/etc/powerstatus
. It then
starts a command based on the contents of this file:
F(AIL) (échec)
Power is failing, UPS is providing the power. Execute the powerwait and powerfail entries.
|
O(K) |
Lâalimentation a Ă©tĂ© rĂ©tablie, exĂ©cuter les entrĂ©es powerokwait . |
L(OW) (bas)
The power is failing and the UPS has a low battery. Execute the powerfailnow entries.
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Ă© lue.
Usage of SIGPWR and /etc/powerstatus is discouraged. Someone wanting to interact with init should use the /run/initctl control channel â see the initctl (5) manual page for more documentation about this.
Quand on demande Ă init de changer de niveau dâexĂ©cution, il envoie le signal dâavertissement SIGTERM Ă tous les processus qui ne sont pas dĂ©finis dans le nouveau niveau dâexĂ©cution. Il attend ensuite 3 secondes avant de forcer lâarrĂȘt de ces processus avec le signal SIGKILL . Notez que init suppose que tous ces processus (et leurs enfants) 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 sĂ©parĂ©ment.
TELINIT
/sbin/telinit
est un lien vers
/sbin/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
tell init to process only those /etc/inittab file entries having runlevel a , b or 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 |
tell init to re-execute itself (preserving the state). No re-examining of /etc/inittab file happens. Runlevel should be one of Ss0123456 otherwise request would be silently ignored. |
telinit peut indiquer Ă init combien de temps il devrait attendre entre lâenvoi des signaux SIGTERM et SIGKILL aux processus. La valeur par dĂ©faut est de 3 secondes, mais elle peut ĂȘtre changĂ©e avec lâoption -t .
telinit -e indique Ă 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.
The init binary checks if it is init or telinit by looking at its process id ; the real init âs process id is always 1 . From this it follows that instead of calling telinit one can also just use init instead as a shortcut.
ENVIRONNEMENT
init configure les variables dâenvironnement suivantes pour tous ses enfants :
|
PATH |
/bin:/usr/bin:/sbin:/usr/sbin |
INIT_VERSION
As the name says. Useful to determine if a script runs directly from init .
RUNLEVEL
Le niveau dâexĂ©cution actuel du systĂšme.
PREVLEVEL
Le niveau dâexĂ©cution prĂ©cĂ©dent (utile aprĂšs un changement de niveau dâexĂ©cution).
CONSOLE
The system console. This is really inherited from the kernel; however if it is not set init will set it to /dev/console by default.
ATTRIBUTS DâAMORĂAGE
It is possible
to pass a number of flags to
init
from the boot
monitor (e.g., LILO or GRUB).
init
accepts the
following flags:
-s
,
S
,
single
Single user mode boot. In this mode /etc/inittab is examined and the bootup rc scripts are usually run before the single user mode shell is started.
|
1â5 |
Niveau dâexĂ©cution dans lequel il faut dĂ©marrer. |
-b , emergency
DĂ©marrage direct dâun interprĂ©teur de commande en mode mono-utilisateur sans lancer aucun autre script de dĂ©marrage.
-a , auto
The LILO boot loader adds the word "auto" to the command line if it booted the kernel with the default command line (without user intervention). If this is found init sets the "AUTOBOOT" environment variable to "yes". Note that you cannot use this for any security measures â of course the user could specify "auto" or -a on the command line manually.
-z xxx
The argument to -z is ignored. You can use this to expand the command line a bit, so that it takes some more space on the stack. init can then manipulate the command line so that ps (1) shows the current runlevel.
--version
This argument, when used on its own, displays the current version of init to the console/stdout. It is a quick way to determine which init software and version is being used. After the version information is displayed, init immediately exits with a return code of zero.
INTERFACE
init listens on a fifo as, /run/initctl , for messages. Telinit uses this to communicate with init . The interface is not very well documented or finished. Those interested should study the initreq.h file in the src/ subdirectory of the init source code tar archive.
SIGNAUX
init
réagit à plusieurs signaux :
SIGHUP
Identique Ă telinit q .
SIGUSR1
On receipt of this signals, init closes and re-opens its control fifo, /run/initctl . Useful for bootscripts when /dev is remounted.
SIGUSR2
When init receives SIGUSR2 , init closes and leaves the control fifo, /run/initctl , closed. This may be used to make sure init is not holding open any files. However, it also prevents init from switching runlevels. Which means commands like shutdown no longer work. The fifo can be re-opened by sending init the SIGUSR1 signal.
SIGINT
Normally the kernel sends this signal to init when CTRL-ALT-DEL is pressed. It activates the ctrlaltdel action.
SIGWINCH
Le noyau envoie ce signal quand la touche KeyboardSignal est pressĂ©e. Cela active lâaction kbrequest .
CONFORMITĂ
init is compatible with the System V init. It works closely together with the scripts in the directories /etc/init.d and /etc/rc{runlevel}.d . If your system uses this convention, there should be a README file in the directory /etc/init.d explaining how these scripts work.
FICHIERS
/etc/inittab
/etc/initscript
/dev/console
/var/run/utmp
/var/log/wtmp
/run/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 autres 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Ă©s dans le niveau dâexĂ©cution S et qui sont nĂ©cessaires au bon fonctionnement ne tournent plus. Le systĂšme devrait ĂȘtre redĂ©marrĂ©.
DIAGNOSTICS
Si init trouve quâil nâarrĂȘte pas de relancer une entrĂ©e (plus de dix 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 cinq minutes se soient Ă©coulĂ©es ou quâil ait reçu un signal. Cela 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 , page de manuel originelle de Michael Haardt .
VOIR AUSSI
getty (1), login (1), sh (1), runlevel (8), shutdown (8), kill (1), initctl (5), inittab (5), initscript (5), utmp (5)