Niveau :      
Résumé : vi /etc/inittab

Init

Init est un démon comme beaucoup d'autres, il a besoin d'un fichier de configuration. Celui-ci s'appelle /etc/inittab. Comme beaucoup le savent, ce fichier contient la définition des runlevel (pour connaître le niveau en cours, utilisez la commande /sbin/runlevel) et des processus associés. Mais il peut aussi faire des choses bien plus passionnantes. Ex :

1:2345:respawn:/sbin/getty 38400 tty1
  • Le premier paramètre est un identifiant choisi par vous (ou votre distribution).
  • Ensuite on trouve la liste des runlevel pour lesquels la directive est valable.
  • Suivi de la directive elle même.
  • Et enfin la commande associée à la directive.

Attention, si vous êtes sur une ubuntu, le paquet sysvinit (init standard qui date de l'époque des pyramides) a été remplacé par upstart qui gère le processus de boot un peu différemment. Vous retrouverez donc les fonctionnalités équivalentes (ou presque) dans /etc/event.d (à vous de trouver les fichiers a modifier :-).

Configuration

L'une des directives de configuration d'init est ctrlaltdel. Elle permet de définir ce qui se passe lorsque quelqu'un appuie sur les célèbres touches ctrl-alt-del. Par défaut cela lance un reboot propre de la machine, mais si vous êtes en train de mettre en place une machine publique (comme dans un cybercafé), vous ne voulez pas que les utilisateurs puissent le faire.

Il vous suffit de remplacer la commande par une commande vide pour que la combinaison ne fasse rien. Vous pouvez aussi la remplacer par un arrêt de la machine, une vérification automatique des partitions ou toute autre commande exécutable.

ca:12345:ctrlaltdel:/sbin/fsck -A

C'est aussi à cet endroit que vous pouvez gérer ce qui se passe en cas de coupure de courant (normalement init est alerté de ces coupures). Ceci avec les directives powerwait, powerfail, powerokwait, powerfailnow et grâce au fait que les processus de monitoring ups sont censés avertir init lorsqu'un événement surgit.

Une dernière option intéressante : kbrequest. Elle associe une commande au signal KeyboardSignal. Signal que vous devez associer à une combinaison de touches de la console (fichier /etc/console-tools/remap pour ceux qui ont le paquet console-tools d'installé). Ex:

# /etc/inittab
kb::kbrequest:/bin/echo "OK ca marche"
# /etc/console-tools/remap
# ctrl-alt-end
control alt keycode 107 = KeyboardSignal

PS : Savez vous qui est David Bradley ?