fichier inittab

Objectif

Contrôle le processus d'initialisation.

Descriptif

Le fichier /etc/inittab fournit le script au rôle de la commande init en tant que répartiteur de processus général. Le processus qui constitue la majorité des activités de répartition de processus de la commande init est le processus de ligne /etc/getty , qui lance des lignes de terminal individuelles. Les autres processus généralement envoyés par la commande Init sont des démons et la coque.

Le fichier /etc/inittab est composé d'entrées dépendantes de la position et au format suivant:

Identifier:RunLevel:Action:Command
Remarque: Caractère deux-points (:) Est utilisé comme délimiteur ainsi qu'un caractère de commentaire. Pour mettre en commentaire une entrée Inittab , ajoutez : au début de l'entrée. Par exemple :
:Identifier:RunLevel:Action:Command

Chaque entrée est délimitée par un caractère de retour à la ligne. Une barre oblique inversée (\) précédant un caractère de nouvelle ligne indique la suite d'une entrée. Le nombre d'entrées dans le fichier /etc/inittab ne fait l'objet d'aucune limite (autre que la taille d'entrée maximale). La taille maximale de l'entrée est de 1024 caractères. Les zones d'entrée sont les suivantes:

identificateur
Chaîne (un ou plusieurs caractères) qui identifie de manière unique un objet.
RunLevel
Niveau d'exécution dans lequel cette entrée peut être traitée. Les niveaux d'exécution correspondent effectivement à une configuration de processus dans le système. Chaque processus démarré par la commande Init est affecté à un ou plusieurs niveaux d'exécution dans lesquels il peut exister. Les niveaux d'exécution sont représentés par les numéros 0 à 9. Par exemple, si le système est exécuté au niveau 1, seules les entrées avec 1 dans la zone Niveau d'exécution sont démarrées. Lorsque vous demandez à la commande Init de modifier les niveaux d'exécution, tous les processus sans entrée dans la zone Niveau d'exécution pour le niveau d'exécution cible reçoivent un signal d'avertissement (SIGTERME). Il y a une période de grâce de 20 secondes avant que les processus soient arrêtés de force par le signal d'arrêt (SIGKILL). La zone Niveau d'exécution peut définir plusieurs niveaux d'exécution pour un processus en sélectionnant plusieurs niveaux d'exécution dans une combinaison de 0 à 9. Si aucun niveau d'exécution n'est spécifié, le processus est supposé valide à tous les niveaux d'exécution.

Il existe trois autres valeurs qui apparaissent dans la zone Niveau d'exécution , même si elles ne sont pas de véritables niveaux d'exécution: A, Bet C. Les entrées ayant ces caractères dans la zone Niveau d'exécution ne sont traitées que lorsque la commande Telinit leur demande d'être exécutées (quel que soit le niveau d'exécution actuel du système). Elles diffèrent des niveaux d'exécution dans la mesure où la commande Init ne peut jamais entrer le niveau d'exécution A, Bou C. En outre, une demande d'exécution de ces processus ne modifie pas le niveau d'exécution en cours. En outre, un processus démarré par une commande A, Bou C n'est pas tué lorsque la commande Init change de niveau. Ils ne sont tués que si leur ligne dans le fichier /etc/inittab est marquée dans la zone action , si leur ligne est entièrement supprimée de /etc/inittabou si la commande init passe en mode utilisateur unique.

Opération
Indique à la commande Init comment traiter le processus spécifié dans la zone Identificateur . Les actions suivantes sont reconnues par la commande Init :
respawn
Si le processus n'existe pas, démarrez le processus. N'attendez pas son arrêt (poursuivez l'analyse du fichier /etc/inittab ). Redémarrez le processus lorsqu'il meurt. Si le processus existe, ne faites rien et poursuivez l'analyse du fichier /etc/inittab .
wait
Lorsque la commande Init entre le niveau d'exécution correspondant au niveau d'exécution de l'entrée, démarrez le processus et attendez sa fin. Toutes les lectures suivantes du fichier /etc/inittab pendant que la commande init se trouve dans le même niveau d'exécution vont entraîner la commande init à ignorer cette entrée.
Une fois
Lorsque la commande Init entre un niveau d'exécution correspondant au niveau d'exécution de l'entrée, démarrez le processus et n'attendez pas sa fin. Lorsqu'il meurt, ne redémarrez pas le processus. Lorsque le système entre un nouveau niveau d'exécution et que le processus est toujours en cours d'exécution à partir d'un changement de niveau d'exécution précédent, le programme ne sera pas redémarré. Toutes les lectures suivantes du fichier /etc/inittab pendant que la commande init se trouve dans le même niveau d'exécution vont entraîner la commande init à ignorer cette entrée.
Amorçage
Traite l'entrée uniquement lors de l'amorçage du système, c'est-à-dire lorsque la commande init lit le fichier /etc/inittab lors du démarrage du système. Démarrez le processus, n'attendez pas sa fin et, lorsqu'il meurt, ne redémarrez pas le processus. Pour que l'instruction soit significative, le niveau d'exécution doit être la valeur par défaut ou correspondre au niveau d'exécution de la commande Init lors de l'amorçage. Cette action est utile pour une fonction d'initialisation à la suite d'un réamorçage matériel du système.
Bootwait
Traiter l'entrée la première fois que la commande Init passe de l'état mono-utilisateur à l'état multi-utilisateur une fois le système amorcé. Démarrez le processus, attendez sa fin et, lorsqu'il meurt, ne redémarrez pas le processus. Si Initdefault est 2, exécutez le processus juste après l'amorçage.
Powerfail
Exécutez le processus associé à cette entrée uniquement lorsque la commande Init reçoit un signal d'échec de l'alimentation (SIGPWR).
Powerwait
Exécutez le processus associé à cette entrée uniquement lorsque la commande init reçoit un signal de panne de courant (SIGPWR) et attendez qu'il se termine avant de continuer à traiter le fichier /etc/inittab .
off
Si le processus associé à cette entrée est en cours d'exécution, envoyez le signal d'avertissement (SIGTERME) et attendez 20 secondes avant d'arrêter le processus avec le signal d'arrêt (SIGKILL). Si le processus n'est pas en cours d'exécution, ignole cette entrée.
on demand
Fonctionnellement identique à Répit, cette action s'applique aux valeurs A, Bou C , et non aux niveaux d'exécution.
Initdefault
Une entrée avec cette action n'est analysée que lorsque la commande Init est initialement appelée. La commande Init utilise cette entrée, si elle existe, pour déterminer le niveau d'exécution à entrer initialement. Pour ce faire, il prend le niveau d'exécution le plus élevé spécifié dans la zone Niveau d'exécution et l'utilise comme état initial. Si la zone Niveau d'exécution est vide, elle est interprétée comme 0123456789 ; par conséquent, la commande Init entre le niveau d'exécution 9. De plus, si la commande init ne trouve pas d'entrée initdefault dans le fichier /etc/inittab , elle demande un niveau d'exécution initial à l'utilisateur au moment de l'amorçage.
Sysinit
Les entrées de ce type sont exécutées avant que la commande Init tente d'accéder à la console avant la connexion. Il est prévu que cette entrée ne sera utilisée que pour initialiser les unités sur lesquelles la commande Init peut essayer de poser la question du niveau d'exécution. Ces entrées sont exécutées et attendues avant de continuer.
Commande
Commande de shell à exécuter. La totalité de la zone Commande est préfixée avecexecEt transmis à un fourchéshen tant quesh -c exec command. Tout droitshPeut apparaître dans cette zone. Les commentaires peuvent être insérés avec la syntaxe # de commentaire.

La commande Getty écrit sur la sortie des commandes qui s'affichent dans le fichier Inittab . Pour enregistrer la sortie de ces commandes dans le journal d'amorçage, lancez leur sortie vers la commande Alog -tboot .

Les descripteurs de fichier stdin, stdout et stdferr peuvent ne pas être disponibles alors que Init traite les entrées Inittab . Les entrées écrites dans stdout ou stderr peuvent ne pas fonctionner de manière prévisible à moins qu'elles ne redirigent leur sortie vers un fichier ou vers /dev/console.

Les commandes suivantes sont la seule méthode prise en charge pour modifier les enregistrements dans le fichier /etc/inittab :

Commande Objectif
Chitab Modifie les enregistrements du fichier /etc/inittab.
Lsitab Répertorie les enregistrements du fichier /etc/inittab .
Mkitab Ajoute des enregistrements au fichier /etc/inittab .
Rmitab Supprime les enregistrements du fichier /etc/inittab .

Exemples

  1. Pour démarrer laidentà tous les niveaux d'exécution, entrez:
    ident:0123456789:Action:Command
  2. Pour démarrer laidentProcessus uniquement au niveau d'exécution 2, entrez:
    ident:2:Action:Command
  3. Pour désactiver les niveaux d'exécution 0, 3, 6-9 pour laident, entrez:
    ident:1245:Action:Command
  4. Pour démarrer la commande Code retour au niveau d'exécution 2 et envoyer sa sortie au journal d'amorçage, entrez:
    rc:2:wait:/etc/rc 2>&1 | alog -tboot > 
    /dev/console

Fichiers

Article Descriptif
/etc/inittab Indique le chemin du fichier Inittab .
/usr/sbin/getty Indique les lignes de terminal.