Différences entre versions de « Start stop daemon »
Aller à la navigation
Aller à la recherche
(Page créée avec « = Démarrage du système = Intéressons-nous aux étapes du démarrage d'un système Linux : # Le BIOS ou un chargeur de d'amorçage ([https://fr.wikipedia.org/wiki/Charge... ») |
|||
Ligne 10 : | Ligne 10 : | ||
= Différent niveaux de démarrage = | = Différent niveaux de démarrage = | ||
+ | == Spécification du niveau de démarrage == | ||
+ | Le mécanisme des niveaux de démarrage permet au système Linux de pouvoir démarrer de différentes façons. Cette action est réalisable sans avoir à redémarrer l'ensemble du système. | ||
+ | |||
+ | Le niveau de démarrage par défaut est définit dans le fichier ''/etc/inittab'' avec une ligne qui ressemble à cela : | ||
+ | <pre> | ||
+ | id:3:initdefault: | ||
+ | </pre> | ||
+ | Dans cet exemple, le niveau de démarrage du système est ''3''. | ||
+ | == Descriptions des niveaux de démarrage == | ||
+ | Les niveaux de démarrage vont de ''0'' à ''6'' et ont la signification suivante : | ||
+ | * ''0'' : éteint le système. Passer dans ce niveau arrêtera tous les sous-systèmes proprement avant l'arrêt de la machine ; | ||
+ | * ''1'' : mode mono-utilisateur. Seul les sous-systèmes vitaux sont initialisés car ce mode sert principalement pour la maintenance. Ce mode offre directement un shell sans demander d'authentification à l'utilisateur ; | ||
+ | * ''2'' : niveau historique (plus utilisé) comme le ''3'' mais sans NFS ; | ||
+ | * ''3'' : niveau utilisé pour des système de production sans interface graphique. C'est ce niveau qui nous intéresse pour notre sous-système ; | ||
+ | * ''4'' : pas utilisé ; | ||
+ | * ''5'' : comme le niveau ''3'' mais avec l'interface graphique en plus. Niveau utilisé pour les stations de travail. | ||
+ | * ''6'' : redémarre la machine. | ||
+ | {|style="width:650px" align="center" | ||
+ | | | ||
+ | [[Fichier:Warning manual.jpg|centré|300px]] | ||
+ | |valign="top"| | ||
+ | Pour des raisons évidentes, les niveaux de démarrage ''0'' est ''6'' '''ne sont pas''' à inscrire dans le fichier ''/etc/inittab'' ! | ||
+ | |} | ||
+ | |||
+ | Il est possible de : | ||
+ | * voir le niveau de démarrage courant grâce à la commande ''runlevel'' ; | ||
+ | * de changer de niveau de démarrage grâce à la commande ''telinit'' ; | ||
+ | |||
+ | Dans l'exemple ci-dessous, on affiche le niveau de démarrage courant, on passe au niveau ''5'' puis on affiche la transition. | ||
+ | <pre> | ||
+ | # runlevel | ||
+ | N 3 | ||
+ | # telinit 5 | ||
+ | # runlevel | ||
+ | 3 5 | ||
+ | </pre> | ||
= Les sous-systèmes = | = Les sous-systèmes = | ||
= Transformer un programme en sous-système = | = Transformer un programme en sous-système = |
Version du 18 mars 2017 à 10:57
Démarrage du système
Intéressons-nous aux étapes du démarrage d'un système Linux :
- Le BIOS ou un chargeur de d'amorçage (bootloader) comme lilo, zlilo ou grub, charge le noyau Linux (vmlinuz) du disque dur en mémoire avec certain paramètres définis dans le fichier de configuration du chargeur d'amorce ;
- Depuis la mémoire vive, le noyau amorce son démarrage par la détection de périphériques vitaux comme des disques, partitions, etc... ;
- La dernière étape entreprise par le noyau et le montage de la partition racine / (root) qui doit obligatoirement contenir les dossiers /etc, /sbin, /bin et /lib ;
- Une fois le décors planté, init est appelé (/sbin/init) et le noyau lui passe la main ;
- Le programme init va lire son fichier de configuration (/etc/inittab) dans lequel est spécifié le niveau de démarrage ou runlevel, ainsi que certain scripts shell à exécuter ;
- Ces scripts vont poursuivre le démarrage du système en montant le système de fichier tel que décrit dans /etc/fstab, activer la mémoire virtuelle (swap), etc... ;
- La dernière étape, celle qui va nous intéresser, consiste à exécuter les scripts présent dans les répertoires /etc/rc.d/rc et qui démarre les programmes en sous-systèmes en fonction de l’arborescence /etc/rc.d. Le nom rc signifie d'ailleurs run commands.
Différent niveaux de démarrage
Spécification du niveau de démarrage
Le mécanisme des niveaux de démarrage permet au système Linux de pouvoir démarrer de différentes façons. Cette action est réalisable sans avoir à redémarrer l'ensemble du système.
Le niveau de démarrage par défaut est définit dans le fichier /etc/inittab avec une ligne qui ressemble à cela :
id:3:initdefault:
Dans cet exemple, le niveau de démarrage du système est 3.
Descriptions des niveaux de démarrage
Les niveaux de démarrage vont de 0 à 6 et ont la signification suivante :
- 0 : éteint le système. Passer dans ce niveau arrêtera tous les sous-systèmes proprement avant l'arrêt de la machine ;
- 1 : mode mono-utilisateur. Seul les sous-systèmes vitaux sont initialisés car ce mode sert principalement pour la maintenance. Ce mode offre directement un shell sans demander d'authentification à l'utilisateur ;
- 2 : niveau historique (plus utilisé) comme le 3 mais sans NFS ;
- 3 : niveau utilisé pour des système de production sans interface graphique. C'est ce niveau qui nous intéresse pour notre sous-système ;
- 4 : pas utilisé ;
- 5 : comme le niveau 3 mais avec l'interface graphique en plus. Niveau utilisé pour les stations de travail.
- 6 : redémarre la machine.
Pour des raisons évidentes, les niveaux de démarrage 0 est 6 ne sont pas à inscrire dans le fichier /etc/inittab ! |
Il est possible de :
- voir le niveau de démarrage courant grâce à la commande runlevel ;
- de changer de niveau de démarrage grâce à la commande telinit ;
Dans l'exemple ci-dessous, on affiche le niveau de démarrage courant, on passe au niveau 5 puis on affiche la transition.
# runlevel N 3 # telinit 5 # runlevel 3 5