INITTAB(5)

NOM
inittab - Format du fichier inittab utilisé dans le processus de démarrage des systèmes UNIX Système V et compatibles

DESCRIPTION
Le fichier inittab décrit l'ensemble des processus qui doivent être lancés au démarrage du système et pendant un fonctionnement normal (par exemple, /etc/init.d/boot, /etc/init.d/rc, gettys…). Le programme init(8) distingue différents niveaux_exécution (runlevel), chacun pouvant avoir ses propres processus à démarrer. Les niveaux d'exécution valables sont 0-6, et A, B ou C pour des niveaux personnalisés (ondemand). Typiquement, une entrée dans le fichier inittab a la forme suivante :

    id:niveaux_exécution:action:processus

Les lignes commençant par le caractère « # » sont ignorées.

id  Séquence unique de 1 à 4 caractères qui identifient une entrée dans inittab (pour les versions de sysvinit compilées avec les anciennes bibliothèques libc5 (< 5.2.18) ou a.out, la limite est de 2 caractères).

    Remarque : pour les programmes de connexion comme les getty ou d'autres, le champ id doit être le numéro du tty correspondant à la console, par exemple 1 pour tty1. Des anciens programmes de gestion des connexions peuvent également se baser là-dessus, même si je n'en ai pas le souvenir.

niveaux_exécution
    Liste des niveaux d'exécution pour lesquels l'action doit être faite.

action
    Description de l'action à faire.

processus
    Commande à exécuter. Si ce champ commence par le caractère « + », init n'enregistrera pas les connexions dans utmp et wtmp. C'est requis par getty qui utilise son propre gestionnaire de utmp ou de wtmp. C'est également un bogue qui reste pour des raisons historiques. La taille de ce champ est limitée à 127 caractères. Please note that including certain characters in the process field will result in init attempting to launch a shell to interpret the command contained in the process field. The characters which will trigger a shell are: ~`!$^&*()=|}[]; On systems which do not have a shell to be launched or which do not wish to use a shell to interpret the process field, the process field can be prefixed with the @ symbol. The @ will be ignored and everything followed will be treated as a command to be launched, literally, by the init service. In cases where both a + and @ sign are to be used (to turn off logging and shell interpretation), place the + sign before the @ symbol. Both flags will be handled and then everything following the @ will be handled by init

Le champ niveaux_exécution peut contenir plusieurs caractères indiquant différents niveaux d'exécution. Par exemple, 123 signifie que le processus sera exécuté dans les niveaux d'exécution 1, 2 et 3. Les niveaux d'exécution pour les entrées ondemand peuvent contenir un A, B ou C. Les champs niveaux_exécution des entrées sysinit, boot et bootwait sont ignorés.

Quand le niveau d'exécution est changé, tous les processus qui ne sont pas spécifiés démarrés dans ce nouveau niveau d'exécution sont tués, d'abord avec SIGTERM, puis avec SIGKILL.

Les actions valables pour le champ action sont :

respawn
    Le processus est redémarré à chaque fois qu'il se termine (par exemple : getty).

wait
    Le processus n'est démarré qu'une seul fois, lors de l'entrée dans le niveau d'exécution et init attend qu'il se termine.

once
    Le processus est exécuté une seule fois, lors de l'entrée dans le niveau d'exécution.

boot
    Le processus est exécuté pendant le démarrage du système. Le champ niveaux_exécution est ignoré.

bootwait
    Le processus est exécuté pendant le démarrage du système et init attend que le processus se termine (par exemple : /etc/rc). Le champ niveaux_exécution est ignoré.

off Ne fait rien.

ondemand
    Un processus marqué dans un niveau d'exécution ondemand est exécuté à chaque fois que le niveau d'exécution ondemand est appelé. Cependant, aucun changement de niveau d'exécution ne survient (les modes de démarrage pour ondemand sont « a », « b » et « c »).

initdefault
    Une entrée initdefault indique qu'on entrera dans ce niveau d'exécution une fois le système effectivement opérationnel. Si aucun n'existe, init demandera un niveau d'exécution sur la console. Le champ processus est ignoré.

sysinit
    Le processus est exécuté pendant le démarrage du système. Il est exécuté avant les entrées boot ou bootwait. Le champ niveaux_exécution est ignoré.

powerwait
    Le processus est exécuté quand la machine est sur le point de s'éteindre. init est normalement informé de cela par un programme qui discute avec un UPS connecté à la machine. init attend que le processus se termine avant de continuer.

powerfail
    Comme powerwait, mis à part que init n'attend pas la fin du processus avant de continuer.

powerokwait
    Le processus est exécuté dès que init est informé que l'alimentation est remise en route.

powerfailnow
    Ce processus est exécuté quand init est informé que la batterie de l'onduleur externe est presque vide et que la tension faiblit (à condition que l'onduleur et le processus de surveillance soient capables de détecter cette condition).

ctrlaltdel
    Le processus est exécuté lorsque init reçoit le signal SIGINT. Cela signifie que quelqu'un a tapé dans la console système la combinaison de touches CTRL-ALT-SUPPR. Typiquement, on a voulu exécuter une sorte d'arrêt, soit pour démarrer en mode mono-utilisateur, soit pour redémarrer la machine.

kbrequest
    Le processus est exécuté quand init reçoit un signal du gestionnaire de clavier indiquant qu'une combinaison spéciale de touches a été actionnée sur le clavier de la console.

    La documentation pour cette fonction n'est pas encore complète ; il est possible de trouver de la documentation supplémentaire dans le paquet kbd-x.xx paquets (le plus récent était kbd-0.94 au moment où ces lignes sont écrites). Vous pouvez affecter des combinaisons de touches à l'action « KeyboardSignal ». Par exemple, pour affecter Alt-FlècheHaut pour cet usage, utilisez ce qui suit dans votre fichier keymaps :

    alt keycode 103 = KeyboardSignal

EXEMPLES
Voici un exemple d'un fichier inittab qui ressemble à un ancien fichier inittab sous linux :

    # inittab for Linux
    id:1:initdefault:
    rc::bootwait:/etc/rc
    1:1:respawn:/etc/getty 9600 tty1
    2:1:respawn:/etc/getty 9600 tty2
    3:1:respawn:/etc/getty 9600 tty3
    4:1:respawn:/etc/getty 9600 tty4

Ce fichier inittab exécute /etc/rc pendant le démarrage du système et démarre getty sur les tty 1 à 4.

Un fichier inittab plus élaboré avec différents niveaux d'exécution (notez bien les commentaires) :

    # Runlevel à démarrer
    id:2:initdefault:
    # Script de configuration / initialisation du système au démarrage.
    si::sysinit:/etc/init.d/rcS
    # Que faire dans le mode mono-utilisateur.
    ~:S:wait:/sbin/sulogin
    # /etc/init.d exécute les scripts S et K pour les changements
    # de niveau d'exécution.
    #
    # Le niveau 0 est pour l'arrêt.
    # Le niveau 1 est pour le mode mono-utilisateur.
    # Les niveaux 2 à 5 correspondent aux niveaux multi-utilisateurs.
    # Le niveau 6 correspond au redémarrage.
    l0:0:wait:/etc/init.d/rc 0
    l1:1:wait:/etc/init.d/rc 1
    l2:2:wait:/etc/init.d/rc 2
    l3:3:wait:/etc/init.d/rc 3
    l4:4:wait:/etc/init.d/rc 4
    l5:5:wait:/etc/init.d/rc 5
    l6:6:wait:/etc/init.d/rc 6
    # Que faire du « salut à 3 doigts ».
    ca::ctrlaltdel:/sbin/shutdown -t1 -h now
    # niveau d'exécution 2,3 : getty sur les consoles virtuelles
    # niveau d'exécution   3 : getty sur le terminal (ttyS0) et
    #                          sur le port modem.
    1:23:respawn:/sbin/getty tty1 VC linux
    2:23:respawn:/sbin/getty tty2 VC linux
    3:23:respawn:/sbin/getty tty3 VC linux
    4:23:respawn:/sbin/getty tty4 VC linux
    S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320
    S1:3:respawn:/sbin/mgetty -x0 -D ttyS1

FICHIERS
/etc/inittab

AUTEUR
init was written by Miquel van Smoorenburg (miquels@cistron.nl). This manual page was written by Sebastian Lederer (lederer@francium.informatik.uni-bonn.de) and modified by Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de).

VOIR AUSSI
init(8), telinit(8)