Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
elearning:workbooks:centos:8:junior:l116 [2021/06/02 15:34] – created adminelearning:workbooks:centos:8:junior:l116 [2024/09/12 09:18] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2021.01**+Version : **2024.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======LCF210 - Gestion du Démarrage et de l'Arrêt du Système======+======LCF510 - Gestion du Démarrage et de l'Arrêt du Système======
  
 =====Contenu du Module===== =====Contenu du Module=====
  
-  * **LCF210 - Gestion du Démarrage et de l'Arrêt du Système**+  * **LCF510 - Gestion du Démarrage et de l'Arrêt du Système**
     * Contenu du Module     * Contenu du Module
     * Présentation     * Présentation
Ligne 18: Ligne 18:
       * Autres Systèmes       * Autres Systèmes
     * Gestionnaire d'amorçage     * Gestionnaire d'amorçage
-      * LILO +      * GRUB 2
-        * La Commande LILO +
-        * Codes Erreur de LILO +
-      * Grub Legacy sous RHEL/CentOS 6 +
-        * Configurer GRUB Legacy +
-          * La Section Globale +
-          * Une Section spécifique à un OS +
-        * Configurer l'Authentification +
-        * Modifier la Configuration de GRUB Legacy en Ligne de Commande +
-      * GRUB 2 sous RHEL/CentOS 7+
         * Le fichier /boot/grub/device.map         * Le fichier /boot/grub/device.map
         * Le fichier /etc/default/grub         * Le fichier /etc/default/grub
         * Les fichiers du répertoire /etc/grub.d         * Les fichiers du répertoire /etc/grub.d
         * Configurer l'Authentification         * Configurer l'Authentification
-          * RHEL/CentOS < 7.2 
-          * RHEL/CentOS >= 7.2 
         * Modifier la Configuration de GRUB 2 en Ligne de Commande         * Modifier la Configuration de GRUB 2 en Ligne de Commande
       * Chargeurs de Démarrages Alternatifs       * Chargeurs de Démarrages Alternatifs
Ligne 44: Ligne 33:
           * PXELINUX           * PXELINUX
         * Isodhpfx         * Isodhpfx
-    * Initramfs sous RHEL/CentOS 6 +    * Initramfs
-      * Examiner l'image existante +
-      * Le script init +
-      * La Commande dracut +
-    * Initramfs sous RHEL/CentOS 7+
       * Examiner l'image existante       * Examiner l'image existante
       * Le script init       * Le script init
       * Consulter le contenu d'un fichier dans initramfs       * Consulter le contenu d'un fichier dans initramfs
-      * La Commande dracut 
     * Processus de Démarrage du Noyau Linux     * Processus de Démarrage du Noyau Linux
     * Processus Init     * Processus Init
-    * Démarrer RHEL/CentOS 5 avec SysVinit +    * Systemd 
-      * Niveaux d'exécution sous RHEL/CentOS 5 +      * LAB #1 - La Commande systemctl 
-      * Inittab +      * LAB #2 - Fichiers de Configuration 
-      Scripts de Démarrage +        2.1 - Fichiers de Configuration par Défaut 
-        * rc.sysinit sous RHEL/CentOS 5 +        * 2.2 - Surchargement des Fichiers de Configuration par Défaut 
-      * Répertoire init.d +      * LAB #3 - La Commande systemd-analyze 
-      * Linux Standard Base +      * LAB #4 - Les Cibles Systemd 
-        * Codes Retour Standardisés +        * 4.1 - Contrôler les dépendances d'une Cible 
-        * Scripts +        * 4.2 - La Cible par Défaut 
-      * Répertoires rcx.d +      * LAB #5 - Gestion des Services 
-        * rc.local +        * 5.1 - Gestion des Instances Uniques 
-      * La Commande chkconfig +        * 5.2 - Gestion d'Instances Multiples 
-    * Démarrer RHEL/CentOS 6 avec Upstart +        * 5.3 Interdire la Modification du Statut d'un Service
-      * Inittab +
-        * Initialisation du Système +
-        * Runlevels +
-        * [CTL]-[ALT]-[DEL] +
-        * mingetty +
-      * Gestion des Services +
-        * La Commande initctl +
-      * Jobs +
-      * Événements +
-      * Etats +
-      * Démarrer et Arrêter les Jobs +
-        * La Commande status +
-        * La Commande start +
-        * La Commande stop +
-        * La Commande restart +
-    * Démarrer RHEL/CentOS 7 +
-      * La Commande systemctl +
-      * Fichiers de Configuration +
-      * La Commande systemd-analyze +
-      * Gestion des Services+
     * Arrêt Système du Système     * Arrêt Système du Système
       * La Commande shutdown       * La Commande shutdown
Ligne 102: Ligne 66:
   * Le noyau se charge en mémoire et commence à exécuter en arrière plan les programmes nécessaires au fonctionnement du système.   * Le noyau se charge en mémoire et commence à exécuter en arrière plan les programmes nécessaires au fonctionnement du système.
  
-<WRAP center round tip>+<WRAP center round tip 60%>
 **A retenir** : Il est possible de consulter le défilement des messages lors du démarrage en appuyant sur la touche <key>Echap</key> ou simultanément sur les touches <key>Ctrl</key>+<key>Alt</key>+<key>F1</key>. En sachant que la liste des messages se défilent rapidement, il est possible de les consulter **après** le démarrage du système à l'aide de la commande **dmesg** qui lit les derniers messages contenu dans le **Kernel Ring Buffer**. Ces messages sont aussi copiés dans le fichier **/var/log/boot.log**. **A retenir** : Il est possible de consulter le défilement des messages lors du démarrage en appuyant sur la touche <key>Echap</key> ou simultanément sur les touches <key>Ctrl</key>+<key>Alt</key>+<key>F1</key>. En sachant que la liste des messages se défilent rapidement, il est possible de les consulter **après** le démarrage du système à l'aide de la commande **dmesg** qui lit les derniers messages contenu dans le **Kernel Ring Buffer**. Ces messages sont aussi copiés dans le fichier **/var/log/boot.log**.
 </WRAP> </WRAP>
Ligne 119: Ligne 83:
   * Lancer le **Charger de Démarrage** du système d'exploitation en utilisant le **bootstrap loader**.   * Lancer le **Charger de Démarrage** du système d'exploitation en utilisant le **bootstrap loader**.
  
-===Charger de Démarrage===+===Chargeur de Démarrage===
  
-La première partie du Charger de Démarrage est en règle générale placé dans le MBR du disque. Le format du MBR est le suivant :+La première partie du Chargeur de Démarrage est en règle générale placé dans le MBR du disque. Le format du MBR est le suivant :
  
   * 446 octets pour le Charger de Démarrage,   * 446 octets pour le Charger de Démarrage,
Ligne 135: Ligne 99:
 Pour que EFI fonctionne, le micrologiciel (**firmware**) d'EFI doit avoir connaissance de chaque système d'exploitation à démarrer. Pour que EFI fonctionne, le micrologiciel (**firmware**) d'EFI doit avoir connaissance de chaque système d'exploitation à démarrer.
  
-<WRAP center round tip>+<WRAP center round tip 60%>
 **A retenir** : Sous Linux c'est l'application **efibootmgr** qui permet de créer et de supprimer des entrées ainsi que de modifier l'ordre de démarrage. **A retenir** : Sous Linux c'est l'application **efibootmgr** qui permet de créer et de supprimer des entrées ainsi que de modifier l'ordre de démarrage.
 </WRAP> </WRAP>
  
-<WRAP center round important> +<WRAP center round important 60%
-**Important** : L'UEFI gère parfaitement les **SSD** (//Solid State Drives//) qui utilisent le standard **NVMe** (//Non-Volatile Memory Express//). Linux supporte les SSD depuis le noyau 3.3.+**Important** : L'UEFI gère les **SSD** (//Solid State Drives//) qui utilisent le standard **NVMe** (//Non-Volatile Memory Express//). Linux supporte les SSD depuis le noyau 3.3.
 </WRAP> </WRAP>
  
Ligne 149: Ligne 113:
 =====Gestionnaires de Démarrage===== =====Gestionnaires de Démarrage=====
  
-Des gestionnaires d'amorçage sous Linux, un se distingue comme étant le plus utilisé : +====GRUB 2====
- +
-  * GRUB (Grand Unified Boot Loader) +
- +
-Cependant il en existe d'autres : +
- +
-  * LILO (LInux LOader) +
-  * %%SysLinux%% +
-  * %%LoadLin%% +
-  * ... +
- +
-====LILO==== +
- +
-LILO (//LInux LOader//) est configuré par le fichier **/etc/lilo.conf**. +
- +
-===La Commande LILO=== +
- +
-La commande **lilo** peut prendre une de plusieurs options. Les options les plus importantes sont : +
- +
-^ Option ^ Description ^ +
-| -M | Permet d'écrire sur le MBR | +
-| -d | Permet de réduire ou augmenter le temps d'attente avant le lancement du noyau par défaut | +
-| -D | Permet de sélectionner un noyau par défaut en indiquant son label | +
-| -u | Permet de désinstaller LILO | +
-| -v | Permet d'activer le mode verbose | +
-| -m | Permet de modifier le fichier map par défaut (/boot/map) | +
-| -i | Permet de spécifier un nouveau fichier à utiliser comme secteur de boot (/boot/boot.b) | +
-| -C | Permet de modifier le fichier de configuration par défaut | +
-| -q | Permet de créer le fichier /boot/map qui contient l'emplacement des noyaux qui peuvent être booter | +
- +
-===Codes Erreur de LILO=== +
- +
-Lors du démarrage, LILO permet d'identifier les éventuelles erreurs : +
- +
-^ Affichage ^  Erreur +
-| (rien) | Aucun morceau de LILO n'a été chargé. Soit LILO n'est pas installé, soit la partition sur laquelle son secteur d'amorce se trouve n'est pas active. | +
-| L | Le premier morceau du chargeur d'amorce a été chargé et démarré, mais il ne peut charger le second morceau. Les codes d'erreur à deux chiffres indiquent le type de problème. (Voir également la section "Codes d'erreur disque".) Ce cas indique en général une panne de périphérique ou une incohérence de géométrie (c'est à dire de mauvais paramètres disques). | +
-| LI | Le premier morceau du chargeur d'amorce a pu charger le second morceau, mais n'a pas réussi à l'exécuter. Cela peut être causé par une incohérence de géométrie ou par le déplacement de /boot/boot.b sans lancer l'installateur de carte. | +
-| LIL | Le second morceau du chargeur d'amorce a été démarré, mais il ne trouve pas la table de descripteurs dans le fichier carte. C'est en général dû à une panne de périphérique ou une incohérence de géométrie. | +
-| LIL? | Le second morceau du chargeur d'amorce a été chargé à un adresse incorrecte. C'est en général causé par une subtile incohérence de géométrie, ou par le déplacement de /boot/boot.b sans lancer l'installateur de carte. | +
-| LIL- | La table de descripteurs est corrompue. Cela peut être dû à une incohérence de géométrie ou au déplacement de /boot/map sans lancer l'installeur. | +
-| LILO | Tous les éléments de LILO ont été correctement chargés. | +
- +
-Si le BIOS signale une erreur lorsque LILO essaye de charger une image d'amorce, le code d'erreur correspondant est affiché. Ces codes vont de 0x00 à 0xbb. Reportez-vous au Guide Utilisateur de LILO pour leur explication. +
- +
-<WRAP center round important> +
-**Important** : LILO ne gère pas les systèmes UEFI. +
-</WRAP>  +
- +
-====Grub Legacy sous RHEL/CentOS 6==== +
- +
-<WRAP center round tip> +
-**A retenir** : Grub Legacy a été créé en **1999**. +
-</WRAP> +
- +
-Dans le cas où le Charger de Démarrage **grub** n'est pas installé, il convient de saisir la commande suivante : +
- +
-  # grub-install /dev/sda [Entrée] +
-   +
-où **sda** est le nom du périphérique ou grub doit s'installer dans le MBR. Notez cependant que le MBR a une taille trop petite pour contenir tout le Charger de Démarrage. Pour cette raison, le gestionnaire est divisé en deux. Le gestionnaire de niveau 1 est stocké dans le MBR et indique où se trouve le gestionnaire de niveau 2, c'est-à-dire le répertoire /boot. +
- +
-Il est aussi possible d'utiliser la commande : +
-   +
-  # grub-install '(hd0)' [Entrée] +
- +
-où **hd0** indique à grub le premier disque. +
- +
-Il est à noter que la première partie du Charger de Démarrage peut également être installé dans un **PBR** (//Partition Boot Record//) dans le cas d'un système dual-boot voire multi-boot au quel cas on parle de **chainloading** : +
- +
-  # grub-install /dev/sda1 [Entrée] +
- +
-ou : +
- +
-  # grub-install 'hd(0,0)' [Entrée] +
- +
-où **(0,0)** est la nomenclature grub pour la première partition du premier disque. +
- +
-Le gestionnaire de niveau 1 a pour seul but le lancement du gestionnaire de niveau 2. Le gestionnaire de niveau 2 charge le noyau en mémoire, monte l'image **initrd** et charge les modules nécessaires pendant que le noyau monte la partition racine / en lecture seule. +
- +
-Pour désinstaller grub du MBR, utilisez une disquette DOS pour démarrer la machine puis taper la commande suivante au prompt : +
- +
-  A> fdisk /mbr [Entrée] +
- +
-===Configurer GRUB Legacy=== +
- +
-**grub** se configure grâce au fichier **/boot/grub/menu.lst**. Pour visualiser ce fichier, il convient de saisir la commande suivante : +
- +
-<code> +
-[root@centos6 ~]# cat /boot/grub/menu.lst +
-# grub.conf generated by anaconda +
-+
-# Note that you do not have to rerun grub after making changes to this file +
-# NOTICE:  You have a /boot partition.  This means that +
-#          all kernel and initrd paths are relative to /boot/, eg. +
-#          root (hd0,0) +
-#          kernel /vmlinuz-version ro root=/dev/sda2 +
-#          initrd /initrd-[generic-]version.img +
-#boot=/dev/sda +
-default=0 +
-timeout=5 +
-splashimage=(hd0,0)/grub/splash.xpm.gz +
-hiddenmenu +
-title CentOS Linux (2.6.32-71.29.1.el6.i686) +
- root (hd0,0) +
- kernel /vmlinuz-2.6.32-71.29.1.el6.i686 ro root=UUID=e73735d6-c14b-4a40-8735-f34fc868da8a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 crashkernel=auto rhgb quiet +
- initrd /initramfs-2.6.32-71.29.1.el6.i686.img  +
-title centos (2.6.32-71.el6.i686) +
- root (hd0,0) +
- kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=e73735d6-c14b-4a40-8735-f34fc868da8a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 crashkernel=auto rhgb quiet +
- initrd /initramfs-2.6.32-71.el6.i686.img +
-</code> +
- +
-<WRAP center round important> +
-**Important** : Sous les distributions dérivées de Red Hat, par exemple Fedora, le fichier menu.lst s'appelle **grub.conf**. +
-</WRAP>  +
- +
-Ce fichier comporte plusieurs sections : +
-   +
-  * la section des **paramètres globaux**, +
-  * une ou plusieurs sections pour chaque système d'opération installé sur la machine. +
- +
-==La Section Globale== +
- +
-^ Paramètre ^ Explication ^ +
-| default=0 | Ce paramètre désigne le numéro de l'entrée à charger par défaut. La valeur de 0 indique la première section commençant par le mot clef **title** | +
-| timeout=5 | Ce paramètre indique le délai en secondes après lequel l'entrée par défaut sera chargée. | +
-| splashimage=(hd0,0)/grub/splash.xpm.gz | Ce paramètre indique l'emplacement de l'image de fond du menu de GRUB Legacy | +
-| hiddenmenu | Ce paramètre cache le menu de GRUB Legacy pendant le chargement de l'entrée par défaut, sauf si l'utilisateur appuie sur une touche | +
-| color | Ce paramètre prend la forme de deux pairs de couleurs. Le premier, par exemple white/blue, définit les couleurs de l'avant-plan et de l'arrière-plan des entrées normales du menu, tandis que le deuxième, par exemple yellow/blue définit les couleurs de l'avant-plan et de l'arrière-plan des entrées sélectionnées du menu | +
-| password=motdepasse | Cette option n'est présente que dans le cas où un mot de passe a été spécifié pour protéger GRUB Legacy | +
- +
-==Une Section spécifique à un OS== +
- +
-^ Paramètre ^ Explication ^ +
-| title CentOS Linux (2.6.32-71.29.1.el6.i686) | Ce paramètre indique le début d'une section de configuration d'une entrée pour un système d'exploitation ainsi que le nom qui apparaît dans le menu de GRUB Legacy | +
-| root (hd0,0) | Ce paramètre indique la partition contenant le noyau de Linux. Dans l'exemple **hd0,0** indique la première partition du premier disque dur. Cette partition est ensuite montée en tant que **/boot**. | +
-| kernel /vmlinuz-2.6.32-71.29.1.el6.i686 | Ce paramètre indique le nom du noyau à charger pour démarrer la machine. Son chemin est relatif à la partition de démarrage (hd0,0). Certaines options peuvent être passées au noyau en les spécifiant en tant qu'arguments telles **rhgb** ou Red Hat Graphical Boot et **quiet** qui supprime les messages de démarrage qui apparaissent avant le lancement de l'animation graphique activée par l'option rhgb | +
-| initrd | Ce paramètre stipule l'emplacement du disque initial chargé en mémoire lors du démarrage. Son chemin est relatif à la partition de démarrage (hd0,0). | +
-| lock | Ce paramètre indique que que la section est protégée par le mot de passe définit dans les paramètres globaux +
-| rootnoverify (hd0,1) | Ce paramètre indique une section concernant un système d'exploitation non Linux, tel que Windows(tm) | +
- +
-===Configurer l'Authentification=== +
- +
-Grub Legacy peut être protéger par un mot de passe en incluant la directive suivante dans le fichier /boot/grub/menu.lst : +
- +
-  password --md5 <mot de passe> +
- +
-Le mot de passe doit être chiffré avec MD5 : +
- +
-<code> +
-[root@centos6 ~]# grub-md5-crypt +
-Password:  +
-Retype password:  +
-$1$VLOzG$ibdk0my4IHny/XtNIGRhv1 +
-</code> +
- +
-Editez ensuite le fichier **/boot/grub/menu.lst** : +
- +
-<code> +
-[root@centos6 ~]# cat /boot/grub/menu.lst +
-# grub.conf generated by anaconda +
-+
-# Note that you do not have to rerun grub after making changes to this file +
-# NOTICE:  You have a /boot partition.  This means that +
-#          all kernel and initrd paths are relative to /boot/, eg. +
-#          root (hd0,0) +
-#          kernel /vmlinuz-version ro root=/dev/sda2 +
-#          initrd /initrd-[generic-]version.img +
-#boot=/dev/sda +
-default=0 +
-timeout=5 +
-password --md5 $1$VLOzG$ibdk0my4IHny/XtNIGRhv1 +
-splashimage=(hd0,0)/grub/splash.xpm.gz +
-hiddenmenu +
-title CentOS (2.6.32-504.1.3.el6.i686) +
- lock +
- root (hd0,0) +
- kernel /vmlinuz-2.6.32-504.1.3.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet +
- initrd /initramfs-2.6.32-504.1.3.el6.i686.img +
-title CentOS (2.6.32-358.18.1.el6.i686) +
- lock +
- root (hd0,0) +
- kernel /vmlinuz-2.6.32-358.18.1.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet +
- initrd /initramfs-2.6.32-358.18.1.el6.i686.img +
-title CentOS (2.6.32-358.6.1.el6.i686) +
- lock +
- root (hd0,0) +
- kernel /vmlinuz-2.6.32-358.6.1.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet +
- initrd /initramfs-2.6.32-358.6.1.el6.i686.img +
-title CentOS (2.6.32-279.el6.i686) +
- lock +
- root (hd0,0) +
- kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=b9f29672-c84e-4d3b-b132-189758a084eb rd_NO_LUKS rd_NO_MD LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rd_NO_LVM rd_NO_DM rhgb quiet +
- initrd /initramfs-2.6.32-279.el6.i686.img +
-</code> +
- +
-<WRAP center round important> +
-**Important** : Notez l'addition de la ligne **password --md5 $1$VLOzG$ibdk0my4IHny/XtNIGRhv1** ainsi que le mot clef **lock** sur une ligne située après chaque ligne commençant par **title**.  +
-</WRAP> +
- +
-===Modifier la Configuration de GRUB Legacy en Ligne de Commande=== +
- +
-Lors du démarrage de GRUB Legacy, il est possible de voir son menu en appuyant sur n'importe quelle touche. Si GRUB Legacy a été protégé par un mot de passe, il convient d'appuyer sur la touche **p** puis de rentrer le mot de passe. A ce stade il est possible d'utiliser deux autres touches : +
- +
-  * la touche **e** pour accéder à l'éditeur de l'interface, +
-  * la touche **c** pour accéder à la ligne de commande. +
- +
-En mode édition notez l'utilisation des touches suivantes : +
- +
-  * **e** : éditer une ligne, +
-  * **d** : supprimer une ligne, +
-  * **o** : ajouter une ligne après la ligne courante, +
-  * **O** : ajouter une ligne avant la ligne courante, +
-  * **b** : démarrer avec la configuration modifiée, +
-  * **echap** : abandonner les modifications et retourner à l'interface de GRUB. +
- +
-====GRUB 2 sous RHEL/CentOS 7====+
  
 GRUB 2 est une ré-écriture complète de GRUB Legacy. Il apporte des améliorations, notamment GRUB 2 sait utiliser des partitions RAID et LVM. GRUB 2 est une ré-écriture complète de GRUB Legacy. Il apporte des améliorations, notamment GRUB 2 sait utiliser des partitions RAID et LVM.
Ligne 384: Ligne 132:
  
 <code> <code>
-[root@centos7 ~]# cat /boot/grub2/grub.cfg +[root@centos8 ~]# cat /boot/grub2/grub.cfg 
 # #
 # DO NOT EDIT THIS FILE # DO NOT EDIT THIS FILE
Ligne 395: Ligne 143:
 set pager=1 set pager=1
  
-if [ -s $prefix/grubenv ]; then+if [ -f ${config_directory}/grubenv ]; then 
 +  load_env -f ${config_directory}/grubenv 
 +elif [ -s $prefix/grubenv ]; then
   load_env   load_env
 fi fi
Ligne 454: Ligne 204:
 fi fi
 ### END /etc/grub.d/00_header ### ### END /etc/grub.d/00_header ###
 +
 +### BEGIN /etc/grub.d/00_tuned ###
 +set tuned_params=""
 +set tuned_initrd=""
 +### END /etc/grub.d/00_tuned ###
 +
 +### BEGIN /etc/grub.d/01_menu_auto_hide ###
 +if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
 +  set last_boot_ok=1
 +else
 +  set last_boot_ok=0
 +fi
 +
 +# Reset boot_indeterminate after a successful boot
 +if [ "${boot_success}" = "1" ] ; then
 +  set boot_indeterminate=0
 +# Avoid boot_indeterminate causing the menu to be hidden more then once
 +elif [ "${boot_indeterminate}" = "1" ]; then
 +  set boot_indeterminate=2
 +fi
 +set boot_success=0
 +save_env boot_success boot_indeterminate
 +
 +if [ x$feature_timeout_style = xy ] ; then
 +  if [ "${menu_show_once}" ]; then
 +    unset menu_show_once
 +    save_env menu_show_once
 +    set timeout_style=menu
 +    set timeout=60
 +  elif [ "${menu_auto_hide}" -a "${last_boot_ok}" = "1" ]; then
 +    set orig_timeout_style=${timeout_style}
 +    set orig_timeout=${timeout}
 +    if [ "${fastboot}" = "1" ]; then
 +      # timeout_style=menu + timeout=0 avoids the countdown code keypress check
 +      set timeout_style=menu
 +      set timeout=0
 +    else
 +      set timeout_style=hidden
 +      set timeout=1
 +    fi
 +  fi
 +fi
 +### END /etc/grub.d/01_menu_auto_hide ###
 +
 +### BEGIN /etc/grub.d/01_users ###
 +if [ -f ${prefix}/user.cfg ]; then
 +  source ${prefix}/user.cfg
 +  if [ -n "${GRUB2_PASSWORD}" ]; then
 +    set superusers="root"
 +    export superusers
 +    password_pbkdf2 root ${GRUB2_PASSWORD}
 +  fi
 +fi
 +### END /etc/grub.d/01_users ###
  
 ### BEGIN /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/10_linux ###
-menuentry 'CentOS Linux (3.10.0-229.4.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91'+insmod part_msdos 
- load_video +insmod ext2 
- set gfxpayload=keep +set root='hd0,msdos1' 
- insmod gzio +if [ x$feature_platform_search_hint = xy ]; then 
- insmod part_msdos +  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  2ae4c035-9244-458c-82c5-a49ae169cdb6 
- insmod xfs +else 
- set root='hd0,msdos1' +  search --no-floppy --fs-uuid --set=root 2ae4c035-9244-458c-82c5-a49ae169cdb6 
- if [ x$feature_platform_search_hint = xy ]; then +fi 
-   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309 +insmod part_msdos 
- else +insmod ext2 
-   search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309 +set boot='hd0,msdos1' 
- fi +if [ x$feature_platform_search_hint = xy ]; then 
- linux16 /vmlinuz-3.10.0-229.4.2.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8 +  search --no-floppy --fs-uuid --set=boot --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  2ae4c035-9244-458c-82c5-a49ae169cdb6 
- initrd16 /initramfs-3.10.0-229.4.2.el7.x86_64.img +else 
-+  search --no-floppy --fs-uuid --set=boot 2ae4c035-9244-458c-82c5-a49ae169cdb6 
-menuentry 'CentOS Linux, with Linux 3.10.0-123.el7.x86_64' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91'+fi 
- load_video + 
- set gfxpayload=keep +# This section was generated by a scriptDo not modify the generated file all changes 
- insmod gzio +# will be lost the next time file is regeneratedInstead edit the BootLoaderSpec files. 
- insmod part_msdos +
- insmod xfs +# The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and 
- set root='hd0,msdos1' +# populates the boot menuPlease refer to the Boot Loader Specification documentation 
- if [ x$feature_platform_search_hint = xy ]; then +# for the files format: https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/
-   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309 + 
- else +set default_kernelopts="root=UUID=4c0cc28c-0d59-45be-bd73-d292b80be33c ro crashkernel=auto resume=UUID=c8bb3f47-d67f-4b21-b781-766899dc83d4 rhgb quiet " 
-   search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309 + 
- fi +insmod blscfg 
- linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8 +blscfg
- initrd16 /initramfs-3.10.0-123.el7.x86_64.img +
-+
-menuentry 'CentOS Linux, with Linux 0-rescue-a2feb9eb09b1488da0f23b99a66350f8' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-a2feb9eb09b1488da0f23b99a66350f8-advanced-b35de665-5ec8-4226-a533-58a1b567ac91'+
- load_video +
- insmod gzio +
- insmod part_msdos +
- insmod xfs +
- set root='hd0,msdos1' +
- if [ x$feature_platform_search_hint = xy ]; then +
-   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309 +
- else +
-   search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309 +
- fi +
- linux16 /vmlinuz-0-rescue-a2feb9eb09b1488da0f23b99a66350f8 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet +
- initrd16 /initramfs-0-rescue-a2feb9eb09b1488da0f23b99a66350f8.img +
-} +
-if [ "x$default" = 'CentOS Linux, with Linux 3.10.0-123.el7.x86_64' ]; then default='Advanced options for CentOS Linux>CentOS Linux, with Linux 3.10.0-123.el7.x86_64'; fi;+
 ### END /etc/grub.d/10_linux ### ### END /etc/grub.d/10_linux ###
  
Ligne 511: Ligne 298:
 ### BEGIN /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/30_os-prober ###
 ### END /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ###
 +
 +### BEGIN /etc/grub.d/30_uefi-firmware ###
 +### END /etc/grub.d/30_uefi-firmware ###
  
 ### BEGIN /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/40_custom ###
Ligne 527: Ligne 317:
 </code> </code>
  
-Prenons le cas des paramètres de Grub Legacy et comparons-les aux paramètres de GRUB 2 : +Notez que ce fichier ne doit pas être modifié manuellement. En effet, il est généré par la commande **grub2-mkconfig**. La commande grub2-mkconfig prend en argument l'emplacement du fichier grub.cfg, par exemple :
- +
-^ Grub Legacy ^ GRUB 2 ^ +
-| title  | Menuentry | +
-| root (hd0,0) | set root=hd(0,1). Notez que GRUB 2 commence toujours la numérotation des disques à 0 mais numérote les partitions à partir de **1** | +
-| kernel | linux | +
-| initrd | initrd | +
-| lock | Ce paramètre n'existe plus sous GRUB 2. | +
-| rootnoverify (hd0,1) | Ce paramètre n'existe plus sous GRUB 2. Les paramètres des systèmes d'exploitation non Linux sont définit avec le paramètre **root** | +
- +
-Notez que ce fichier ne doit pas être modifié manuellement. En effet, il est généré par la commande **grub2-mkconfig** sous RHEL/CentOS 7. La commande grub2-mkconfig prend en argument l'emplacement du fichier destination, par exemple :+
  
   * grub2-mkconfig -o /boot/grub2/grub.cfg, ou   * grub2-mkconfig -o /boot/grub2/grub.cfg, ou
Ligne 547: Ligne 327:
  
 <code> <code>
-[root@centos7 ~]# cat /boot/grub2/device.map+[root@centos8 ~]# cat /boot/grub2/device.map
 # this device map was generated by anaconda # this device map was generated by anaconda
 (hd0)      /dev/sda (hd0)      /dev/sda
Ligne 558: Ligne 338:
  
 <code> <code>
-[root@centos7 ~]# cat /etc/default/grub+[root@centos8 ~]# cat /etc/default/grub
 GRUB_TIMEOUT=5 GRUB_TIMEOUT=5
 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
Ligne 564: Ligne 344:
 GRUB_DISABLE_SUBMENU=true GRUB_DISABLE_SUBMENU=true
 GRUB_TERMINAL_OUTPUT="console" GRUB_TERMINAL_OUTPUT="console"
-GRUB_CMDLINE_LINUX="vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet"+GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=c8bb3f47-d67f-4b21-b781-766899dc83d4 rhgb quiet"
 GRUB_DISABLE_RECOVERY="true" GRUB_DISABLE_RECOVERY="true"
 +GRUB_ENABLE_BLSCFG=true
 </code> </code>
  
- +<WRAP center round important 60%
-<WRAP center round important> +**Important** : Notez que toute modification de ce fichier nécessite l'exécution de la commande **grub2-mkconfig** pour que les modifications soient prises en compte.
-**Important** : Notez que toute modification de ce fichier nécessite l'exécution de la commande **grub2-mkconfig** sous RHEL/CentOS 7 pour que les modifications soient prises en compte.+
 </WRAP> </WRAP>
  
Ligne 576: Ligne 356:
  
 ^  Directive  ^ Description ^ ^  Directive  ^ Description ^
-| GRUB_DEFAULT | Entrée du menu sélectionner par défaut | 
 | GRUB_TIMEOUT | Durée de l'affichage du menu avant le démarrage en utilisant la valeur de GRUB_DEFAULT | | GRUB_TIMEOUT | Durée de l'affichage du menu avant le démarrage en utilisant la valeur de GRUB_DEFAULT |
 | GRUB_DISTRIBUTOR | Ligne de commande qui génère le texte de l'entrée | | GRUB_DISTRIBUTOR | Ligne de commande qui génère le texte de l'entrée |
-GRUB_CMDLINE_LINUX_DEFAULT Paramètres passés au noyau lors d'un démarrage normal (Hors donc le mode secours) |+GRUB_DEFAULT Entrée du menu sélectionner par défaut | 
 +| GRUB_DISABLE_SUBMENU | Active ou désactive les sous-menus de GRUB2 | 
 +| GRUB_TERMINAL_OUTPUT | Spécifie le terminal par défaut |
 | GRUB_CMDLINE_LINUX | Paramètres passés au noyau peu importe le type de démarrage | | GRUB_CMDLINE_LINUX | Paramètres passés au noyau peu importe le type de démarrage |
-GRUB_TERMINAL Si non commentée, cette directive désactive le démarrage graphique | +GRUB_DISABLE_RECOVERY Active ou désactive la génération des entrées en mode **recovery** | 
-| GRUB_GFXMODE | Indique la résolution utilisée lors d'un démarrage graphique | +GRUB_BLSCFG Active ou désactive l'utilisation de la nouvelle spécification du gestionnaire de démarrage pour configurer celui-ci |
-| GRUB_DISABLE_LINUX_UUID | Si **true**, cette directive empêche l'utilisation de l'UUID de la partition | +
-| GRUB_DISABLE_LINUX_RECOVERY | Si **true**, cette directive empêche la génération des entrées en mode **recovery** | +
-GRUB_INIT_TUNE Permet d'obtenir un beep au démarrage de GRUB 2 | +
-| GRUB_BADRAM | Permet de spécifier de la mémoire défaillante |+
  
 ===Les fichiers du répertoire /etc/grub.d=== ===Les fichiers du répertoire /etc/grub.d===
Ligne 593: Ligne 370:
  
 <code> <code>
-[root@centos7 ~]# ls -l /etc/grub.d +[root@centos8 ~]#  ls -l /etc/grub.d 
-total 68 +total 92 
--rwxr-xr-x. 1 root root  8702 Mar 26 09:27 00_header +-rwxr-xr-x. 1 root root  8958 Mar  2 15:51 00_header 
--rwxr-xr-x. 1 root root   992 Oct 17  2014 00_tuned +-rwxr-xr-x. 1 root root  1043 Jun 15  2020 00_tuned 
--rwxr-xr-x. 1 root root 10114 Mar 26 09:27 10_linux +-rwxr-xr-x. 1 root root   232 Mar  2 15:51 01_users 
--rwxr-xr-x. 1 root root 10275 Mar 26 09:27 20_linux_xen +-rwxr-xr-x. 1 root root   832 Mar  2 15:51 08_fallback_counting 
--rwxr-xr-x. 1 root root  2559 Mar 26 09:27 20_ppc_terminfo +-rwxr-xr-x. 1 root root 14088 Mar  2 15:51 10_linux 
--rwxr-xr-x. 1 root root 11169 Mar 26 09:27 30_os-prober +-rwxr-xr-x. 1 root root   830 Mar  2 15:51 10_reset_boot_success 
--rwxr-xr-x. 1 root root   214 Mar 26 09:27 40_custom +-rwxr-xr-x. 1 root root   889 Mar  2 15:51 12_menu_auto_hide 
--rwxr-xr-x. 1 root root   216 Mar 26 09:27 41_custom +-rwxr-xr-x. 1 root root 11696 Mar  2 15:51 20_linux_xen 
--rw-r--r--. 1 root root   483 Mar 26 09:27 README+-rwxr-xr-x. 1 root root  2559 Mar  2 15:51 20_ppc_terminfo 
 +-rwxr-xr-x. 1 root root 10670 Mar  2 15:51 30_os-prober 
 +-rwxr-xr-x. 1 root root  1412 Mar  2 15:51 30_uefi-firmware 
 +-rwxr-xr-x. 1 root root   214 Mar  2 15:51 40_custom 
 +-rwxr-xr-x. 1 root root   216 Mar  2 15:51 41_custom 
 +-rw-r--r--. 1 root root   483 Mar  2 15:51 README
 </code> </code>
  
Ligne 613: Ligne 395:
     * Ces deux fichiers sont fournis en tant que modèles à personnaliser.     * Ces deux fichiers sont fournis en tant que modèles à personnaliser.
  
-===Configurer l'Authentification===+===Le Fichier /boot/grub2/grubenv===
  
-==RHEL/CentOS < 7.2== +Le fichier **/boot/grub2/grubenv** contient l'entrée du menu sauvegardéeréférencée par la directive **GRUB_DEFAULT** du fichier **/etc/default/grub** :
- +
-Pour configurer l'authentification sous GRUB 2il faut créer le fichier **/etc/grub.d/01_users** :+
  
 <code> <code>
-[root@centos7 ~]# touch /etc/grub.d/01_users  +[root@centos8 ~]# cat /boot/grub2/grubenv 
-[root@centos7 ~]# chmod 755 /etc/grub.d/01_users +# GRUB Environment Block 
 +saved_entry=de79af4f226d480fa7d3fec4cabbf97a-4.18.0-240.22.1.el8_3.x86_64 
 +kernelopts=root=UUID=4c0cc28c-0d59-45be-bd73-d292b80be33c ro crashkernel=auto resume=UUID=c8bb3f47-d67f-4b21-b781-766899dc83d4 rhgb quiet  
 +boot_success=1 
 +boot_indeterminate=0 
 +########################################################################################################################################## 
 +########################################################################################################################################## 
 +########################################################################################################################################## 
 +########################################################################################################################################## 
 +########################################################################################################################################## 
 +############################################################[root@centos8 ~]#
 </code> </code>
- 
-Créez deux mots de passe hashés au format **[[https://fr.wikipedia.org/wiki/PBKDF2|PBKDF2]]** en utilisant la commande **grub2-mkpasswd-pbkdf2** sous RHEL/CentOS : 
- 
-<code> 
-[root@centos7 ~]# grub2-mkpasswd-pbkdf2 
-Enter password: pass123 
-Reenter password: pass123 
-PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.0298C1C613A451C46FBC95BB2AC7A41BCEC1C61512EF785BD81E3B65DFF9D57ED4ADF8906C3EF33C22C06FBDD366E1C118FC41110BD646A4D49EF86EFD0573BF.E14A45900096D773BE99BEA9AB8D4FA81431458952798B997D4FC9E0850426F6798979371B8EBD331DB33AE8FEAE25E6773156D42F21B884DBA405546782B3BD 
-</code> 
- 
-Editez le fichier **/etc/grub.d/01_users** ainsi : 
- 
-<file txt /etc/grub.d/01_users> 
-#!/bin/sh -e 
-cat <<EOF 
-set superusers="root" 
-password_pbkdf2 root 
-grub.pbkdf2.sha512.10000.0298C1C613A451C46FBC95BB2AC7A41BCEC1C61512EF785BD81E3B65DFF9D57ED4ADF8906C3EF33C22C06FBDD366E1C118FC41110BD646A4D49EF86EFD0573BF.E14A45900096D773BE99BEA9AB8D4FA81431458952798B997D4FC9E0850426F6798979371B8EBD331DB33AE8FEAE25E6773156D42F21B884DBA405546782B3BD 
-EOF 
-</file> 
- 
-Il est aussi possible d'utiliser des mots de passe non cryptés. Modifiez donc le fichier **/etc/grub.d/01_users** ainsi : 
- 
-<file txt /etc/grub.d/01_users> 
-#!/bin/sh -e 
-cat <<EOF 
-set superusers="root" 
-password root pass123 
-EOF 
-</file> 
- 
-Sous RHEL/CentOS, lancez la commande **grub2-mkconfig -o /boot/grub2/grub.cfg** : 
- 
-<code> 
-[root@centos7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
-Generating grub configuration file ... 
-Found linux image: /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64 
-Found initrd image: /boot/initramfs-3.10.0-229.4.2.el7.x86_64.img 
-Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64 
-Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img 
-Found linux image: /boot/vmlinuz-0-rescue-a2feb9eb09b1488da0f23b99a66350f8 
-Found initrd image: /boot/initramfs-0-rescue-a2feb9eb09b1488da0f23b99a66350f8.img 
-done 
-</code> 
- 
-<WRAP center round todo> 
-**A faire** : Redémarrez votre VM. Constatez que GRUB 2 demande un nom d'utilisateur ainsi qu'un mot de passe. Attention, le clavier est en QWERTY ( pass123 = pqss&é“ ). 
-</WRAP> 
- 
-==RHEL/CentOS >= 7.2== 
- 
-Depuis la version 7.2 de RHEL/centOS le fichier **/etc/grub.d/01_users** existe déjà : 
- 
-<code> 
-[root@centos7 ~]# cat /etc/grub.d/01_users  
-#!/bin/sh -e 
-cat << EOF 
-if [ -f \${prefix}/user.cfg ]; then 
-  source \${prefix}/user.cfg 
-  if [ -n "\${GRUB2_PASSWORD}" ]; then 
-    set superusers="root" 
-    export superusers 
-    password_pbkdf2 root \${GRUB2_PASSWORD} 
-  fi 
-fi 
-EOF 
-</code> 
- 
-Ce script est évidement présent dans le fichier **grub.cfg** : 
- 
-<code> 
-### BEGIN /etc/grub.d/01_users ### 
-if [ -f ${prefix}/user.cfg ]; then 
-  source ${prefix}/user.cfg 
-  if [ -n ${GRUB2_PASSWORD} ]; then 
-    set superusers="root" 
-    export superusers 
-    password_pbkdf2 root ${GRUB2_PASSWORD} 
-  fi 
-fi 
-### END /etc/grub.d/01_users ### 
-</code> 
- 
-Ce script : 
- 
-  * teste si le fichier **/boot/grub2/user.cfg** existe puis si c'est le cas, 
-  * teste si la variable $GRUB2_PASSWORD est fixée puis si c'est le cas, 
-  * assigne le mot de passe à root. 
- 
-Pour créer le contenu du fichier **/boot/grub2/user.cfg**, il convient d'utiliser la commande **grub2-setpassword** : 
- 
-<code> 
-[root@centos7 ~]# grub2-setpassword 
-Enter password: pass123 
-Confirm password: pass123 
-</code> 
- 
-Consultez maintenant le fichier **/boot/grub2/user.cfg** : 
- 
-<code> 
-[root@centos7 ~]# cat /boot/grub2/user.cfg 
-GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.3DD268A626FC781A0693D381A5F1BBDE6C834D1D904F023AED8CEF2985304FEC9F0C1C8B975156F5DF534F4B10BCCDC5C187B0C12F55E970A244D9EF2EF962DD.9BB2011598B8E5EFD9A464ED96C0FECB8DCD8FD6942E5114E035AD8A9E2DCFF32A9DC1C222B4226A462B32E7B6D80247F96D79133F18F6524544984837EF4D06 
-</code> 
- 
-<WRAP center round todo> 
-**A faire** : Redémarrez votre VM. Appuyez sur la touche **e** au début du processus de démarrage. Constatez que GRUB 2 demande un nom d'utilisateur ainsi qu'un mot de passe. Attention, le clavier est en QWERTY ( pass123 = pqss&é“ ). Notez qu'à ce stade le mot de passe ne protège que l'édition des entrées de GRUB2. 
-</WRAP> 
- 
-Pour pouvoir protéger le démarrage du système, il convient d'éditer le fichier **grub.cfg** en supprimant la directive **--unrestricted** de la ligne **menuentry** : 
- 
-<code> 
-[root@centos7 ~]# cat /boot/grub2/grub.cfg 
-... 
-### BEGIN /etc/grub.d/10_linux ### 
-menuentry 'CentOS Linux (3.10.0-693.21.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-e65fe7da-cda8-4f5a-a827-1b5cabe94bed' { 
-        load_video 
-        set gfxpayload=keep 
-        insmod gzio 
-        insmod part_msdos 
-        insmod xfs 
-        set root='hd0,msdos1' 
-        if [ x$feature_platform_search_hint = xy ]; then 
-          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  2d947276-66e8-41f4-8475-b64b67d7a249 
-        else 
-          search --no-floppy --fs-uuid --set=root 2d947276-66e8-41f4-8475-b64b67d7a249 
-        fi 
-        linux16 /vmlinuz-3.10.0-693.21.1.el7.x86_64 root=UUID=e65fe7da-cda8-4f5a-a827-1b5cabe94bed ro rhgb quiet LANG=en_GB.UTF-8 
-        initrd16 /initramfs-3.10.0-693.21.1.el7.x86_64.img 
-} 
-... 
-</code> 
- 
-<code> 
-[root@centos7 ~]# vi /boot/grub2/grub.cfg 
-... 
-### BEGIN /etc/grub.d/10_linux ### 
-menuentry 'CentOS Linux (3.10.0-693.21.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-e65fe7da-cda8-4f5a-a827-1b5cabe94bed' { 
-        load_video 
-        set gfxpayload=keep 
-        insmod gzio 
-        insmod part_msdos 
-        insmod xfs 
-        set root='hd0,msdos1' 
-        if [ x$feature_platform_search_hint = xy ]; then 
-          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  2d947276-66e8-41f4-8475-b64b67d7a249 
-        else 
-          search --no-floppy --fs-uuid --set=root 2d947276-66e8-41f4-8475-b64b67d7a249 
-        fi 
-        linux16 /vmlinuz-3.10.0-693.21.1.el7.x86_64 root=UUID=e65fe7da-cda8-4f5a-a827-1b5cabe94bed ro rhgb quiet LANG=en_GB.UTF-8 
-        initrd16 /initramfs-3.10.0-693.21.1.el7.x86_64.img 
-} 
-... 
-</code> 
- 
-<WRAP center round todo> 
-**A faire** : Redémarrez votre VM. Constatez que GRUB 2 demande un nom d'utilisateur ainsi qu'un mot de passe. Attention, le clavier est en QWERTY ( pass123 = pqss&é“ ). Notez que cette modification n'est pas permenante.  
-</WRAP> 
- 
  
 ===Modifier la Configuration de GRUB 2 en Ligne de Commande=== ===Modifier la Configuration de GRUB 2 en Ligne de Commande===
Ligne 795: Ligne 427:
   * **Crtl-X** : démarrer avec la configuration modifiée,   * **Crtl-X** : démarrer avec la configuration modifiée,
   * **echap** : abandonner les modifications et retourner à l'interface menu de GRUB 2.   * **echap** : abandonner les modifications et retourner à l'interface menu de GRUB 2.
- 
-<WRAP center round important> 
-**Important** : Certaines distributions, telle qu'Ubuntu, cache le menu de GRUB 2 derrière une interface graphique. Afin de voir ce menu, il convient d'appuyer sur la touche **Shift** pendant que la machine démarre. 
-</WRAP> 
  
 ====Chargeurs de Démarrages Alternatifs==== ====Chargeurs de Démarrages Alternatifs====
Ligne 838: Ligne 466:
 Un Chargeur de Démarrage hybride, appelé **isodhpfx.bin**, qui peut être chargé sur un disque **ou** une clef USB. Le fichier isodhpfx.bin est créé avec le programme **xorriso**. Un Chargeur de Démarrage hybride, appelé **isodhpfx.bin**, qui peut être chargé sur un disque **ou** une clef USB. Le fichier isodhpfx.bin est créé avec le programme **xorriso**.
  
 +====Initramfs====
  
-====Initramfs sous RHEL/CentOS 6==== +Le fichier Initramfs //%%INITial Ram File System%%// est une archive au format cpio :
- +
-Un fichier Initramfs //%%INITial Ram File System%%// est une image d'un système minimal initialisée au démarrage du système. +
- +
-Ce fichier utilise le système de fichier **cramFS** qui est un système de fichier compressé au format gzip et archivé via cpio+
- +
-L'image est chargée en mémoire vive et permet ainsi d'avoir un système minimal pouvant ensuite charger le système de fichier principal. +
- +
-===Examiner l'image existante=== +
- +
-Pour examiner une image initramfs, il convient d'abord de la copier vers /tmp et de la décompresser :+
  
 <code> <code>
-[root@centos6 ~]# cp /boot/initramfs-2.6.32-71.29.1.el6.i686.img /tmp/custom.gz +[root@centos8 ~]# cp /boot/initramfs-4.18.0-240.22.1.el8_3.x86_64.img /tmp/custom 
-[root@centos6 ~]# gunzip /tmp/custom.gz  +[root@centos8 ~]# cd /tmp 
-</code>+[root@centos8 tmp]# ls 
 +cpio.list 
 +custom 
 +dateref 
 +incremental.tar 
 +mbr.save 
 +systemd-private-9af7a2f7444849578f55b306bfd9f820-chronyd.service-iQiNzF 
 +tblpart.save 
 +test.cpio 
 +test.print 
 +test.tar 
 +tmp.iso 
 +vg0_backup
  
-Ensuite il convient d'extraire l'image grâce à la commande **cpio** : +[root@centos8 tmp]# mv custom custom.gz
  
-<code> +[root@centos8 tmp]# gunzip custom.gz
-[root@centos6 ~]# cd /tmp +
-[root@centos6 tmp]# mkdir initrd +
-[root@centos6 tmp]# cd initrd +
-[root@centos6 initrd]# cpio -cid -I ../custom +
-59631 blocs +
-</code>+
  
-Installez maintenant le paquet **tree** : +[root@centos8 tmp]# mkdir initramfs
  
-<code> +[root@centos8 tmp]# cd initramfs
-[root@centos6 initrd]# yum install tree +
-</code>+
  
-Utilisez maintenant la commande **tree** pour examiner le contenu de l'image : +[root@centos8 initramfs]# cpio -cid -I ../custom 
- +216 blocks 
-<code> +[root@centos8 initramfs]# ls
-[root@centos6 initrd]# tree | more +
-+
-├── bin +
-│   ├── basename +
-│   ├── cat +
-│   ├── cp +
-│   ├── dash +
-│   ├── dd +
-│   ├── dmesg +
-│   ├── grep +
-│   ├── gzip +
-│   ├── ln +
-│   ├── loadkeys +
-│   ├── ls +
-│   ├── mkdir +
-│   ├── mknod +
-│   ├── mount +
-│   ├── mv +
-│   ├── plymouth +
-│   ├── plymouthd +
-│   ├── readlink +
-│   ├── rm +
-│   ├── sed +
-│   ├── setfont +
-│   ├── sh -> dash +
-│   ├── sleep +
-│   ├── umount +
-│   └── uname +
-├── cmdline +
---Plus-- +
-</code> +
- +
-Comme vous pouvez le constater, l'image contient une arborescence Linux minimaliste : +
- +
-<code> +
-[root@centos6 initrd]# ls +
-bin      dev                    emergency  init       initqueue-finished  lib    pre-pivot    pre-udev  sbin  sysroot  usr +
-cmdline  dracut-004-33.2.el6_0  etc        initqueue  initqueue-settled   mount  pre-trigger  proc      sys   tmp      var +
-</code> +
- +
-<WRAP center round todo> +
-**A faire** : Utilisez le manuel de la commande **cpio** pour comprendre les options utilisées. +
-</WRAP> +
- +
-===Le script init=== +
- +
-Le script **init** est lancé lors du chargement de l'image : +
- +
-<code> +
-[root@centos6 initrd]# more init +
-#!/bin/sh +
-+
-# Licensed under the GPLv2 +
-+
-# Copyright 2008-2009, Red Hat, Inc. +
-# Harald Hoyer <harald@redhat.com> +
-# Jeremy Katz <katzj@redhat.com> +
- +
-wait_for_loginit() +
-+
-    if getarg rdinitdebug; then +
- set +x +
- exec 0<>/dev/console 1<>/dev/console 2<>/dev/console +
- # wait for loginit +
- i=0 +
- while [ $i -lt 10 ]; do  +
-     j=$(jobs) +
-     [ -z "$j" ] && break +
-     [ -z "${j##*Running*}" ] || break +
-     sleep 0.1 +
-     i=$(($i+1)) +
- done  +
- [ $i -eq 10 ] && kill %1 >/dev/null 2>&+
- +
-        while pidof -x /sbin/loginit >/dev/null 2>&1; do +
-            for pid in $(pidof -x /sbin/loginit); do +
-                kill $HARD $pid >/dev/null 2>&+
-            done +
---Plus--(8%) +
-</code> +
- +
-<WRAP center round todo> +
-**A faire** : Passez en revue le contenu du script. +
-</WRAP> +
- +
-===La Commande dracut=== +
- +
-La commande **dracut** permet de créer facilement une image initramfs. Les options de la commande sont : +
- +
-<code> +
-[root@centos6 initrd]# dracut --help +
-Usage: /sbin/dracut [OPTION]... <initramfs> <kernel-version> +
-Creates initial ramdisk images for preloading modules +
- +
-  -f, --force           Overwrite existing initramfs file. +
-  -m, --modules [LIST]  Specify a space-separated list of dracut modules to +
-                         call when building the initramfs. Modules are located +
-                         in /usr/share/dracut/modules.d. +
-  -o, --omit [LIST]     Omit a space-separated list of dracut modules. +
-  -a, --add [LIST]      Add a space-separated list of dracut modules. +
-  -d, --drivers [LIST]  Specify a space-separated list of kernel modules to +
-                        exclusively include in the initramfs. +
-  --add-drivers [LIST]  Specify a space-separated list of kernel  +
-                        modules to add to the initramfs. +
-  --filesystems [LIST]  Specify a space-separated list of kernel filesystem +
-                        modules to exclusively include in the generic +
-                        initramfs. +
-  -k, --kmoddir [DIR]   Specify the directory, where to look for kernel  +
-                        modules +
-  --fwdir [DIR]         Specify additional directories, where to look for  +
-                        firmwares, separated by : +
-  --kernel-only         Only install kernel drivers and firmware files +
-  --no-kernel           Do not install kernel drivers and firmware files +
-  --strip               Strip binaries in the initramfs +
-  --nostrip             Do not strip binaries in the initramfs (default) +
-  --mdadmconf           Include local /etc/mdadm.conf +
-  --nomdadmconf         Do not include local /etc/mdadm.conf +
-  --lvmconf             Include local /etc/lvm/lvm.conf +
-  --nolvmconf             Do not include local /etc/lvm/lvm.conf +
-  -h, --help            This message +
-  --debug               Output debug information of the build process +
-  -v, --verbose         Verbose output during the build process +
-  -c, --conf [FILE]     Specify configuration file to use. +
-                         Default: /etc/dracut.conf +
-  -l, --local           Local mode. Use modules from the current working +
-                         directory instead of the system-wide installed in +
-                         /usr/share/dracut/modules.d. +
-                         Useful when running dracut from a git checkout. +
-  -H, --hostonly          Host-Only mode: Install only what is needed for +
-                         booting the local host instead of a generic host. +
-  -i, --include [SOURCE] [TARGET] +
-                        Include the files in the SOURCE directory into the +
-                         Target directory in the final initramfs. +
-  -I, --install [LIST]  Install the space separated list of files into the +
-                         initramfs. +
-</code> +
- +
-Le fichier de configuration de dracut est **/etc/dracut.conf** : +
- +
-<file> +
-[root@centos6 initrd]# cat /etc/dracut.conf +
-# Sample dracut config file +
- +
-# Specific list of dracut modules to use +
-#dracutmodules+="" +
- +
-# Dracut modules to omit +
-#omit_dracutmodules+="" +
- +
-# Dracut modules to add to the default +
-#add_dracutmodules+="" +
- +
-# additional kernel modules to the default +
-add_drivers+="" +
- +
-# list of kernel filesystem modules to be included in the generic initramfs +
-#filesystems+="" +
- +
-# build initrd only to boot current hardware +
-#hostonly="yes" +
-+
- +
-# install local /etc/mdadm.conf +
-mdadmconf="yes" +
- +
-# install local /etc/lvm/lvm.conf +
-lvmconf="yes" +
-</file> +
- +
-Exécutez maintenant la commande suivante afin de générer le fichier **initramfs** : +
- +
-  # dracut -v initramfs [Entrée] +
- +
-Notez la présence de votre nouvelle image **/tmp/initrd/initramfs**. +
- +
-Déplacez votre fichier initramfs au répertoire /boot : +
- +
-<code> +
-[root@centos6 initrd]# mv initramfs /boot +
-</code> +
- +
-Editez maintenant votre fichier **/boot/grub/menu.lst** et **ajoutez** une **nouvelle section** qui utilise votre initramfs. +
- +
-<file> +
-... +
-splashimage=(hd0,0)/grub/splash.xpm.gz +
-hiddenmenu +
-title CentOS Linux (initramfs) +
- root (hd0,0) +
- kernel /vmlinuz-2.6.32-71.29.1.el6.i686 ro root=UUID=e73735d6-c14b-4a40-8735-f34fc868da8a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 crashkernel=auto rhgb quiet +
- initrd /initramfs +
-title CentOS Linux (2.6.32-71.29.1.el6.i686) +
-... +
-</file> +
- +
- +
-<WRAP center round todo> +
-**A faire** : **Re-démarrez votre machine pour tester votre configuration.** +
-</WRAP> +
- +
-====Initramfs sous RHEL/CentOS 7==== +
- +
-Le fichier Initramfs //%%INITial Ram File System%%// est une archive au format cpio compressé : +
- +
-<code> +
-[root@centos7 ~]# cp /boot/initramfs-3.10.0-514.16.1.el7.x86_64.img /tmp/custom +
-[root@centos7 ~]# cd /tmp +
-[root@centos7 tmp]# ls +
-custom  systemd-private-be6ac69163a0437aa9a0b0cb2f8514e6-chronyd.service-rOpG2C  systemd-private-be6ac69163a0437aa9a0b0cb2f8514e6-cups.service-yzrHum +
-[root@centos7 tmp]# mv custom custom.gz +
-[root@centos7 tmp]# gunzip custom.gz  +
-[root@centos7 tmp]# mkdir initramfs +
-[root@centos7 tmp]# cd initramfs +
-[root@centos7 initramfs]# cpio -cid -I ../custom +
-113591 blocks +
-[root@centos7 initramfs]# ls+
 bin  dev  etc  init  lib  lib64  proc  root  run  sbin  shutdown  sys  sysroot  tmp  usr  var bin  dev  etc  init  lib  lib64  proc  root  run  sbin  shutdown  sys  sysroot  tmp  usr  var
-[root@centos7 initramfs]# ls -l 
-total 4 
-lrwxrwxrwx.  1 root root    7 Dec  4 11:00 bin -> usr/bin 
-drwxr-xr-x.  2 root root  100 Dec  4 11:00 dev 
-drwxr-xr-x. 11 root root  520 Dec  4 11:00 etc 
-lrwxrwxrwx.  1 root root   23 Dec  4 11:00 init -> usr/lib/systemd/systemd 
-lrwxrwxrwx.  1 root root    7 Dec  4 11:00 lib -> usr/lib 
-lrwxrwxrwx.  1 root root    9 Dec  4 11:00 lib64 -> usr/lib64 
-drwxr-xr-x.  2 root root   40 Dec  4 11:00 proc 
-drwxr-xr-x.  2 root root   40 Dec  4 11:00 root 
-drwxr-xr-x.  2 root root   40 Dec  4 11:00 run 
-lrwxrwxrwx.  1 root root    8 Dec  4 11:00 sbin -> usr/sbin 
--rwxr-xr-x.  1 root root 3117 Dec  4 11:00 shutdown 
-drwxr-xr-x.  2 root root   40 Dec  4 11:00 sys 
-drwxr-xr-x.  2 root root   40 Dec  4 11:00 sysroot 
-drwxr-xr-x.  2 root root   40 Dec  4 11:00 tmp 
-drwxr-xr-x.  7 root root  140 Dec  4 11:00 usr 
-drwxr-xr-x.  2 root root   80 Dec  4 11:00 var 
 </code> </code>
  
Ligne 1117: Ligne 506:
  
 <code> <code>
-[root@centos7 initramfs]# cd .. +[root@centos8 tmp]# lsinitrd custom | more 
-[root@centos7 tmp]# lsinitrd custom | more +Image: custom: 25M 
-Image: custom: 56M+======================================================================== 
 +Early CPIO image 
 +======================================================================== 
 +drwxr-xr-x   3 root     root            0 Feb 22 10:57 . 
 +-rw-r--r--   1 root     root            2 Feb 22 10:57 early_cpio 
 +drwxr-xr-x   3 root     root            0 Feb 22 10:57 kernel 
 +drwxr-xr-x   3 root     root            0 Feb 22 10:57 kernel/x86 
 +drwxr-xr-x   2 root     root            0 Feb 22 10:57 kernel/x86/microcode 
 +-rw-r--r--   1 root     root       109568 Feb 22 10:57 kernel/x86/microcode/GenuineIntel.bin
 ======================================================================== ========================================================================
-Version: dracut-033-502.el7_4.1+Version: dracut-049-95.git20200804.el8_3.4
  
-Arguments: -f+Arguments: -f --kver '4.18.0-240.22.1.el8_3.x86_64'
  
 dracut modules: dracut modules:
 bash bash
 +systemd
 +systemd-initrd
 nss-softokn nss-softokn
 +rngd
 i18n i18n
 +network-legacy
 network network
 ifcfg ifcfg
 drm drm
 plymouth plymouth
 +prefixdevname
 kernel-modules kernel-modules
-qemu+kernel-modules-extra 
 +kernel-network-modules
 resume resume
 rootfs-block rootfs-block
Ligne 1140: Ligne 543:
 udev-rules udev-rules
 biosdevname biosdevname
-systemd+dracut-systemd
 usrmount usrmount
 base base
 fs-lib fs-lib
 +memstrack
 +microcode_ctl-fw_dir_override
 shutdown shutdown
 ======================================================================== ========================================================================
-drwxr-xr-x  12 root     root            0 Apr 23  2018 +drwxr-xr-x  12 root     root            0 Feb 22 10:57 
-crw-r--r--   1 root     root       5,   Apr 23  2018 dev/console +crw-r--r--   1 root     root       5,   Feb 22 10:57 dev/console 
-crw-r--r--   1 root     root       1,  11 Apr 23  2018 dev/kmsg +crw-r--r--   1 root     root       1,  11 Feb 22 10:57 dev/kmsg 
-crw-r--r--   1 root     root       1,   Apr 23  2018 dev/null +crw-r--r--   1 root     root       1,   Feb 22 10:57 dev/null 
-lrwxrwxrwx   1 root     root            7 Apr 23  2018 bin -> usr/bin +crw-r--r--   1 root     root       1,   8 Feb 22 10:57 dev/random 
-drwxr-xr-x   2 root     root            0 Apr 23  2018 dev +crw-r--r--   1 root     root       1,   9 Feb 22 10:57 dev/urandom 
-drwxr-xr-x  11 root     root            0 Apr 23  2018 etc +lrwxrwxrwx   1 root     root            7 Feb 22 10:57 bin -> usr/bin 
-drwxr-xr-x   2 root     root            0 Apr 23  2018 etc/cmdline.d +drwxr-xr-x   2 root     root            0 Feb 22 10:57 dev 
-drwxr-xr-x   2 root     root            0 Apr 23  2018 etc/conf.d +drwxr-xr-x  11 root     root            0 Feb 22 10:57 etc 
--rw-r--r--   1 root     root          124 Apr 23  2018 etc/conf.d/systemd.conf +-rw-r--r--   1 root     root           30 Nov 10  2020 etc/centos-release 
--rw-r--r--   1 root     root          248 Jan  5  2018 etc/dhclient.conf +drwxr-xr-x   2 root     root            0 Feb 22 10:57 etc/cmdline.d 
--rw-r--r--   1 root     root            0 Apr 23  2018 etc/fstab.empty+drwxr-xr-x   2 root     root            0 Feb 22 10:57 etc/conf.d 
 +-rw-r--r--   1 root     root          124 Feb 22 10:57 etc/conf.d/systemd.conf
 --More-- --More--
 </code> </code>
- 
-Comme vous pouvez le constater, l'image contient une arborescence Linux minimaliste : 
  
 ===Le script init=== ===Le script init===
  
-Le script **init** est lancé lors du chargement de l'image. RHEL/CentOS utilise le système de démarrage **systemd**. Pour cette raison le script init sous RHEL/CentOS 7 est un lien symbolique vers **/usr/lib/systemd/systemd** :+RHEL/CentOS utilise le système de démarrage **systemd**. Pour cette raison le script init est un lien symbolique vers **/usr/lib/systemd/systemd** :
  
 <code> <code>
-[root@centos7 tmp]# lsinitrd custom | grep init +[root@centos8 tmp]# lsinitrd custom | grep usr/lib/systemd/systemd | grep init 
-... +lrwxrwxrwx   1 root     root           23 Feb 22 10:57 init -> usr/lib/systemd/systemd
-lrwxrwxrwx.  1 root root   23 Dec  4 11:00 init -> usr/lib/systemd/systemd +
-...+
 </code> </code>
  
Ligne 1179: Ligne 581:
  
 <code> <code>
-[root@centos7 tmp]# lsinitrd /boot/initramfs-$(uname -r).img  /etc/ld.so.conf+[root@centos8 tmp]# lsinitrd /boot/initramfs-$(uname -r).img  /etc/ld.so.conf
 include ld.so.conf.d/*.conf include ld.so.conf.d/*.conf
 </code> </code>
- 
-===La Commande dracut=== 
- 
-La commande **dracut** permet de créer facilement une image initramfs. Les options de la commande sont : 
- 
-<code> 
-[root@centos7 tmp]# dracut --help 
-Usage: /sbin/dracut [OPTION]... [<initramfs> [<kernel-version>]] 
- 
-Version: 033-463.el7 
- 
-Creates initial ramdisk images for preloading modules 
- 
-  --kver [VERSION]      Set kernel version to [VERSION]. 
-  -f, --force           Overwrite existing initramfs file. 
-  -a, --add [LIST]      Add a space-separated list of dracut modules. 
-  --rebuild         Append arguments to those of existing image and rebuild 
-  -m, --modules [LIST]  Specify a space-separated list of dracut modules to 
-                         call when building the initramfs. Modules are located 
-                         in /usr/lib/dracut/modules.d. 
-  -o, --omit [LIST]     Omit a space-separated list of dracut modules. 
-  --force-add [LIST]    Force to add a space-separated list of dracut modules 
-                         to the default set of modules, when -H is specified. 
-  -d, --drivers [LIST]  Specify a space-separated list of kernel modules to 
-                         exclusively include in the initramfs. 
-  --add-drivers [LIST]  Specify a space-separated list of kernel 
-                         modules to add to the initramfs. 
-  --omit-drivers [LIST] Specify a space-separated list of kernel 
-                         modules not to add to the initramfs. 
-  --filesystems [LIST]  Specify a space-separated list of kernel filesystem 
-                         modules to exclusively include in the generic 
-                         initramfs. 
-  -k, --kmoddir [DIR]   Specify the directory, where to look for kernel 
-                         modules 
-  --fwdir [DIR]         Specify additional directories, where to look for 
-                         firmwares, separated by : 
-  --kernel-only         Only install kernel drivers and firmware files 
-  --no-kernel           Do not install kernel drivers and firmware files 
-  --print-cmdline       Print the kernel command line for the given disk layout 
-  --early-microcode     Combine early microcode with ramdisk 
-  --no-early-microcode  Do not combine early microcode with ramdisk 
-  --kernel-cmdline [PARAMETERS] Specify default kernel command line parameters 
-  --strip               Strip binaries in the initramfs 
-  --nostrip             Do not strip binaries in the initramfs 
-  --prelink             Prelink binaries in the initramfs 
-  --noprelink           Do not prelink binaries in the initramfs 
-  --hardlink            Hardlink files in the initramfs 
-  --nohardlink          Do not hardlink files in the initramfs 
-  --prefix [DIR]        Prefix initramfs files with [DIR] 
-  --noprefix            Do not prefix initramfs files 
-  --mdadmconf           Include local /etc/mdadm.conf 
-  --nomdadmconf         Do not include local /etc/mdadm.conf 
-  --lvmconf             Include local /etc/lvm/lvm.conf 
-  --nolvmconf           Do not include local /etc/lvm/lvm.conf 
-  --fscks [LIST]        Add a space-separated list of fsck helpers. 
-  --nofscks             Inhibit installation of any fsck helpers. 
-  --ro-mnt              Mount / and /usr read-only by default. 
-  -h, --help            This message 
-  --debug               Output debug information of the build process 
-  --profile             Output profile information of the build process 
-  -L, --stdlog [0-6]    Specify logging level (to standard error) 
-                         0 - suppress any messages 
-                         1 - only fatal errors 
-                         2 - all errors 
-                         3 - warnings 
-                         4 - info 
-                         5 - debug info (here starts lots of output) 
-                         6 - trace info (and even more) 
-  -v, --verbose         Increase verbosity level 
-  -q, --quiet           Decrease verbosity level 
-  -c, --conf [FILE]     Specify configuration file to use. 
-                         Default: /etc/dracut.conf 
-  --confdir [DIR]       Specify configuration directory to use *.conf files 
-                         from. Default: /etc/dracut.conf.d 
-  --tmpdir [DIR]        Temporary directory to be used instead of default 
-                         /var/tmp. 
-  -l, --local           Local mode. Use modules from the current working 
-                         directory instead of the system-wide installed in 
-                         /usr/lib/dracut/modules.d. 
-                         Useful when running dracut from a git checkout. 
-  -H, --hostonly        Host-Only mode: Install only what is needed for 
-                        booting the local host instead of a generic host. 
-  -N, --no-hostonly     Disables Host-Only mode 
-  --hostonly-cmdline    Store kernel command line arguments needed 
-                        in the initramfs 
-  --no-hostonly-cmdline Do not store kernel command line arguments needed 
-                        in the initramfs 
-  --hostonly-i18n       Install only needed keyboard and font files according 
-                        to the host configuration (default). 
-  --no-hostonly-i18n    Install all keyboard and font files available. 
-  --persistent-policy [POLICY] 
-                        Use [POLICY] to address disks and partitions. 
-                        POLICY can be any directory name found in /dev/disk. 
-                        E.g. "by-uuid", "by-label" 
-  --fstab               Use /etc/fstab to determine the root device. 
-  --add-fstab [FILE]    Add file to the initramfs fstab 
-  --mount "[DEV] [MP] [FSTYPE] [FSOPTS]" 
-                        Mount device [DEV] on mountpoint [MP] with filesystem 
-                        [FSTYPE] and options [FSOPTS] in the initramfs 
-  --add-device "[DEV]"  Bring up [DEV] in initramfs 
-  -i, --include [SOURCE] [TARGET] 
-                        Include the files in the SOURCE directory into the 
-                         Target directory in the final initramfs. 
-                        If SOURCE is a file, it will be installed to TARGET 
-                         in the final initramfs. 
-  -I, --install [LIST]  Install the space separated list of files into the 
-                         initramfs. 
-  --install-optional [LIST]  Install the space separated list of files into the 
-                         initramfs, if they exist. 
-  --gzip                Compress the generated initramfs using gzip. 
-                         This will be done by default, unless another 
-                         compression option or --no-compress is passed. 
-  --bzip2               Compress the generated initramfs using bzip2. 
-                         Make sure your kernel has bzip2 decompression support 
-                         compiled in, otherwise you will not be able to boot. 
-  --lzma                Compress the generated initramfs using lzma. 
-                         Make sure your kernel has lzma support compiled in, 
-                         otherwise you will not be able to boot. 
-  --xz                  Compress the generated initramfs using xz. 
-                         Make sure that your kernel has xz support compiled 
-                         in, otherwise you will not be able to boot. 
-  --lzo                  Compress the generated initramfs using lzop. 
-                         Make sure that your kernel has lzo support compiled 
-                         in, otherwise you will not be able to boot. 
-  --lz4                  Compress the generated initramfs using lz4. 
-                         Make sure that your kernel has lz4 support compiled 
-                         in, otherwise you will not be able to boot. 
-  --compress [COMPRESSION] Compress the generated initramfs with the 
-                         passed compression program.  Make sure your kernel 
-                         knows how to decompress the generated initramfs, 
-                         otherwise you will not be able to boot. 
-  --no-compress         Do not compress the generated initramfs.  This will 
-                         override any other compression options. 
-  --list-modules        List all available dracut modules. 
-  -M, --show-modules    Print included module's name to standard output during 
-                         build. 
-  --keep                Keep the temporary initramfs for debugging purposes 
-  --printsize           Print out the module install size 
-  --sshkey [SSHKEY]     Add ssh key to initramfs (use with ssh-client module) 
-  --logfile [FILE]      Logfile to use (overrides configuration setting) 
- 
-If [LIST] has multiple arguments, then you have to put these in quotes. 
- 
-For example: 
- 
-    # dracut --add-drivers "module1 module2"  ... 
- 
-</code> 
- 
-Le fichier de configuration de dracut est **/etc/dracut.conf** : 
- 
-<file> 
-# PUT YOUR CONFIG HERE OR IN separate files named *.conf 
-# in /etc/dracut.conf.d 
-# SEE man dracut.conf(5) 
- 
-# Sample dracut config file 
- 
-#logfile=/var/log/dracut.log 
-#fileloglvl=6 
- 
-# Exact list of dracut modules to use.  Modules not listed here are not going 
-# to be included.  If you only want to add some optional modules use 
-# add_dracutmodules option instead. 
-#dracutmodules+="" 
- 
-# dracut modules to omit 
-#omit_dracutmodules+="" 
- 
-# dracut modules to add to the default 
-#add_dracutmodules+="" 
- 
-# additional kernel modules to the default 
-add_drivers+="ehci-hcd ohci-hcd usb-storage scsi_mod sd_mod" 
- 
-# list of kernel filesystem modules to be included in the generic initramfs 
-#filesystems+="" 
- 
-# build initrd only to boot current hardware 
-#hostonly="yes" 
-# 
- 
-# install local /etc/mdadm.conf 
-#mdadmconf="no" 
- 
-# install local /etc/lvm/lvm.conf 
-#lvmconf="no" 
- 
-# A list of fsck tools to install. If it's not specified, module's hardcoded 
-# default is used, currently: "umount mount /sbin/fsck* xfs_db xfs_check 
-# xfs_repair e2fsck jfs_fsck reiserfsck btrfsck". The installation is 
-# opportunistic, so non-existing tools are just ignored. 
-#fscks="" 
- 
-# inhibit installation of any fsck tools 
-#nofscks="yes" 
- 
-# mount / and /usr read-only by default 
-#ro_mnt="no" 
- 
-# set the directory for temporary files 
-# default: /var/tmp 
-#tmpdir=/tmp 
-</file> 
- 
-Exécutez maintenant la commande suivante afin de générer le fichier **initramfs** : 
- 
-<code> 
-[root@centos7 tmp]# dracut -v initramfs 
-Executing: /sbin/dracut -v initramfs 
-dracut module 'busybox' will not be installed, because command 'busybox' could not be found! 
-dracut module 'busybox' will not be installed, because command 'busybox' could not be found! 
-*** Including module: bash *** 
-*** Including module: nss-softokn *** 
-*** Including module: i18n *** 
-*** Including module: network *** 
-*** Including module: ifcfg *** 
-*** Including module: drm *** 
-*** Including module: plymouth *** 
-*** Including module: kernel-modules *** 
-*** Including module: qemu *** 
-*** Including module: resume *** 
-*** Including module: rootfs-block *** 
-*** Including module: terminfo *** 
-*** Including module: udev-rules *** 
-Skipping udev rule: 91-permissions.rules 
-*** Including module: biosdevname *** 
-*** Including module: systemd *** 
-*** Including module: usrmount *** 
-*** Including module: base *** 
-*** Including module: fs-lib *** 
-*** Including module: shutdown *** 
-*** Including modules done *** 
-*** Installing kernel module dependencies and firmware *** 
-*** Installing kernel module dependencies and firmware done *** 
-*** Resolving executable dependencies *** 
-*** Resolving executable dependencies done*** 
-*** Hardlinking files *** 
-*** Hardlinking files done *** 
-*** Stripping files *** 
-*** Stripping files done *** 
-*** Generating early-microcode cpio image contents *** 
-*** Constructing GenuineIntel.bin **** 
-*** Store current command line parameters *** 
-*** Creating image file *** 
-*** Creating microcode section *** 
-*** Created microcode section *** 
-*** Creating image file done *** 
-*** Creating initramfs image file '/tmp/initramfs' done *** 
-</code> 
- 
-Notez la présence de votre nouvelle image **/tmp/initrd/initramfs** : 
- 
-<code> 
-[root@centos7 initrd]# ls -l /tmp/initrd/initramfs 
--rw-------. 1 root root 16373488 Jun 10 10:23 /tmp/initrd/initramfs 
-</code> 
- 
-Déplacez votre fichier initramfs au répertoire /boot : 
- 
-<code> 
-[root@centos7 initrd]# mv initramfs /boot 
-</code> 
- 
-Ouvrez votre fichier **/boot/grub2/grub.cfg** et cherchez la section **10_linux**. Copiez la première section **menuentry** : 
- 
-<code> 
-... 
-### BEGIN /etc/grub.d/10_linux ### 
-menuentry 'CentOS Linux (3.10.0-229.4.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' { 
- load_video 
- set gfxpayload=keep 
- insmod gzio 
- insmod part_msdos 
- insmod xfs 
- set root='hd0,msdos1' 
- if [ x$feature_platform_search_hint = xy ]; then 
-   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309 
- else 
-   search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309 
- fi 
- linux16 /vmlinuz-3.10.0-229.4.2.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet LANG=en_US.UTF-8 
- initrd16 /initramfs-3.10.0-229.4.2.el7.x86_64.img 
-} 
-... 
-</code> 
- 
-Créez maintenant le fichier **/etc/grub.d/09_redhat**, collez la section précédemment copiée à la place indiquée entre les lignes **cat << EOF** et **EOF** puis modifiez la dernière ligne **initrd16** : 
- 
-<file> 
-#!/bin/sh -e 
-cat << EOF 
-menuentry 'CentOS Linux, with Linux 3.10.0-229.4.2.el7.x86_64 et initramfs' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-229.4.2.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' { 
-        load_video 
-        set gfxpayload=keep 
-        insmod gzio 
-        insmod part_msdos 
-        insmod xfs 
-        set root='hd0,msdos1' 
-        if [ x$feature_platform_search_hint = xy ]; then 
-          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309 
-        else 
-          search --no-floppy --fs-uuid --set=root e8d3bd48-1386-411c-9675-41c3f8f1a309 
-        fi 
-        linux16 /vmlinuz-3.10.0-229.4.2.el7.x86_64 root=UUID=b35de665-5ec8-4226-a533-58a1b567ac91 ro vconsole.keymap=fr crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet 
-        initrd16 /initramfs 
-} 
-EOF 
-</file> 
- 
-Rendez ce fichier exécutable : 
- 
-<code> 
-[root@centos7 initrd]# chmod +x /etc/grub.d/09_redhat 
-</code> 
- 
-Avant de continuer, supprimer le fichier **/etc/grub.d/01_users** et éditez le contenu du fichier **/etc/grub.d/40_custom** ainsi : 
- 
-<file> 
-#!/bin/sh 
-exec tail -n +3 $0 
-# This file provides an easy way to add custom menu entries.  Simply type the 
-# menu entries you want to add after this comment.  Be careful not to change 
-# the 'exec tail' line above. 
-</file> 
- 
-Mettez à jour grub afin que celui-ci prend en compte le nouveau fichier : 
- 
-<code> 
-[root@centos7 initrd]# grub2-mkconfig -o /boot/grub2/grub.cfg 
-Generating grub configuration file ... 
-Found linux image: /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64 
-Found initrd image: /boot/initramfs-3.10.0-229.4.2.el7.x86_64.img 
-Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64 
-Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img 
-Found linux image: /boot/vmlinuz-0-rescue-a2feb9eb09b1488da0f23b99a66350f8 
-Found initrd image: /boot/initramfs-0-rescue-a2feb9eb09b1488da0f23b99a66350f8.img 
-done 
-</code> 
- 
-Controlez le fichier /boot/grub2/grub.cfg : 
- 
-<file> 
-... 
-### BEGIN /etc/grub.d/09_redhat ### 
-menuentry 'CentOS Linux, with Linux 3.10.0-229.4.2.el7.x86_64 et initramfs' --class centos --class gnu-linux --class gnu --class os --unrestricted  'gnulinux-3.10.0-229.4.2.el7.x86_64-advanced-b35de665-5ec8-4226-a533-58a1b567ac91' { 
-        load_video 
-        set gfxpayload=keep 
-        insmod gzio 
-        insmod part_msdos 
-        insmod xfs 
-        set root='hd0,msdos1' 
-        if [ x = xy ]; then 
-          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  e8d3bd48-1386-411c-9675-41c3f8f1a309 
-        else 
-... 
-</file> 
- 
-<WRAP center round todo> 
-**A faire** : **Re-démarrez votre machine pour tester votre configuration.** 
-</WRAP> 
  
 ====Processus de Démarrage du Noyau Linux==== ====Processus de Démarrage du Noyau Linux====
Ligne 1558: Ligne 599:
 La fonction **init_post()** essaie ensuite d'exécuter un des processus suivant dans l'ordre : La fonction **init_post()** essaie ensuite d'exécuter un des processus suivant dans l'ordre :
  
-  * /sbin/init+  * /sbin/init ==> /usr/sbin/init ==> /usr/lib/systemd/systemd
   * /etc/init   * /etc/init
   * /bin/init   * /bin/init
-  * /bin/sh +  * /bin/sh ==> /bin/bash ==> /usr/bin/bash
  
 Dans le cas d'un échec à ce stade le message **Kernel Panic** sera affiché. Dans le cas d'un échec à ce stade le message **Kernel Panic** sera affiché.
  
-====Processus Init====+=====Systemd=====
  
-Le premier processus lancé par le noyau est **Init**. L'exécutable lancé est **/sbin/init**. Son rôle est de d'initialiser le système et de lancer certains autres servicesLes tâches accomplies par init sont :+Les systèmes de démarrage antérieurs à Systemd, **SysVinit** et **Upstart**, étaient des systèmes de démarrage **séquentiels**
  
-  le montage de /proc et de /sys, +**Systemd** essaie, par contre, de démarrer autant de services en parallèle que possible. Ceci est rendu possible car la majorité d'architectures matérielles modernes sont multi-cœurs. Si un service dépend d'un autre qui n'est pas encore démarré ce premier est mis en attente dans une mémoire tampon. Qui plus estles services qui ne sont pas nécessaires au démarrage de la machine, tel cupsne sont démarrés ultérieurement que si nécessaire. Lors de démarrageles partitions sont montées en parallèle. Dernièrement, **Systemd** remplace les scripts de démarrage traditionnels avec des binaires compilésbeaucoup plus rapides que leur prédécesseurs.
-  configuration des paramètres du noyau présents dans **/etc/sysctl.conf**, +
-  * l'activation de %%SELinux%%, +
-  * la mise à l'heure du système, +
-  * la définition des consoles textes, +
-  * la définition du nom de la machine, +
-  * la détection des périphériques USB, +
-  * la mise en place du support RAID et LVM, +
-  * l'activation des quotas de disque, +
-  * le montages des systèmes de fichiers, +
-  * le re-montage du système de fichiers racine en lecture/écriture, +
-  l'activation du swap, +
-  le lancement de syslog, +
-  le chargement des modules du noyau, +
-  le nettoyage des fichiers temporaires, +
-  * la définition des variables d'environnement tels PATH et RUNLEVEL+
  
-=====Démarrer RHEL/CentOS 5 avec SysVinit=====+Au lieu de parler de scripts de démarrage et de niveaux d'exécution, **Systemd** utilise la terminologie **Unités** (//Units//) et **Cibles** (//Targets//). Une Unité peut être :
  
-====Niveaux d'exécution sous RHEL/CentOS 5====+  * **.automount** - active la fonctionalité d'automount. 
 +  * **.device** - expose une périphérique dans systemd. 
 +  * **.mount** - contrôle quand et comment les systèmes de fichiers sont montés. 
 +  * **.path** - active un service quand il y a un accès à un fichier ou répertoire sous surveillance par le système. 
 +  * **.service** - démarre, arrête, redémarre ou recharge un service. 
 +  * **.scope** - gère des services. 
 +  * **.slice** - regroupe des Unités dans une arborescence afin de limiter des ressources en utilisant des CGroups. 
 +  * **.snapshot** - un état sauvegardé du gestionnaire Systemd. 
 +  * **.socket** - permet aux Unités d'utiliser des sockets pour la communication inter-processus. 
 +  * **.swap** - encapsule une périphérique ou un fichier swap. 
 +  * **.timer** - déclenche l'activation d'autres Unités en utilisant des minuteurs de Systemd. 
 +  * **.target** - regroupe des Unités multiples afin qu'elles puissent être démarrées en même temps. Par exemple **network.target** regroupe toutes les Unités nécessaires pour démarrer toutes les interfaces réseaux en même temps.
  
-Il existe 8 niveaux d'exécution ou **RUNLEVELS** sous RHEL/CentOS 5. Quatre des 8 sont réservés :+Une Cible est en quelque sorte une **grande étape** dans le démarrage du système :
  
-^ RUNLEVEL ^ Description ^ +  * **halt.target** - arrête le système. 
-| 0 | Arrêt de la machine | +  * **poweroff.target** - arrête le système et coupe le courant. 
-| 1 | Mode mono-utilisateur pour la maintenance | +  * **shutdown.target** arrête le système. 
-| 6 | Redémarrage de la machine | +  * **rescue.target** - démarre le système en mode single-user (seul root peut s'y connecter). Tous les systèmes de fichiers sont montés mais le réseau n'est pas démarré. 
-| S ou | Mode mono-utilisateur avec seul la partition racine montée |+  * **emergency.target** - démarre le système en mode single-user (seul root peut s'y connecter). Uniquement le système de fichiers racine est monté en mode lecture seule. Le réseau n'est pas démarré. 
 +  * **multi-user.target** - démarre le système en mode multi-utilisateur avec tous les systèmes de fichiers montés et le service network démarré. 
 +  * **graphical.target** - démarre le système en multi-user.target puis démarre l'interface graphique. 
 +  * **hibernate.target** - sauvegarde l'état courant sur disque et arrête le système. Quand le système est démarré, l'état est restauré. 
 +  * **reboot.target** - redémarre le système.
  
-Les autres quatre RUNLEVELS sont définis par chaque distributionPar exemplesous %%RedHat%%, ils sont :+**Systemd** utilise des Cibles d'une manière similaire à ce que **SysVinit** utilise des niveaux d'exécutionPour rendre la transition plus facileil existe des **Cibles** qui "simulent" les niveaux d'exécution de **SysVinit** :
  
-^ RUNLEVEL ^ Description ^ +<code> 
-| 2 | Mode multi-utilisateur sans NFS | +[root@centos8 ~]# ls -l /usr/lib/systemd/system/runlevel* 
-| 3 | Mode multi-utilisateur | +lrwxrwxrwx. 1 root root 15 Apr  7 16:55 /usr/lib/systemd/system/runlevel0.target -> poweroff.target 
-| 4 | Non-utilisé | +lrwxrwxrwx. 1 root root 13 Apr  7 16:55 /usr/lib/systemd/system/runlevel1.target -> rescue.target 
-| 5 | Mode multi-utilisateur avec session graphique |+lrwxrwxrwx. 1 root root 17 Apr  7 16:55 /usr/lib/systemd/system/runlevel2.target -> multi-user.target 
 +lrwxrwxrwx. 1 root root 17 Apr  7 16:55 /usr/lib/systemd/system/runlevel3.target -> multi-user.target 
 +lrwxrwxrwx. 1 root root 17 Apr  7 16:55 /usr/lib/systemd/system/runlevel4.target -> multi-user.target 
 +lrwxrwxrwx. 1 root root 16 Apr  7 16:55 /usr/lib/systemd/system/runlevel5.target -> graphical.target 
 +lrwxrwxrwx. 1 root root 13 Apr  7 16:55 /usr/lib/systemd/system/runlevel6.target -> reboot.target
  
-Il existe aussi 3 pseudo-niveaux d'exécution **a**, **b** et **c**Ces pseudo-niveaux permettent à init de faire quelquechose sans changer de niveau d'exécution.+/usr/lib/systemd/system/runlevel1.target.wants: 
 +total 0
  
-Pour connaître le niveau d'exécution actuel de la machine, saisissez la commande suivante :+/usr/lib/systemd/system/runlevel2.target.wants: 
 +total 0
  
-<code> +/usr/lib/systemd/system/runlevel3.target.wants: 
-[root@centos5 ~]# runlevel +total 0
-N 5 +
-</code>+
  
-La lettre N indique que le système n'a pas changé de niveau d'exécution depuis son démarrage.+/usr/lib/systemd/system/runlevel4.target.wants: 
 +total 0
  
-Pour modifier le niveau d'exécution courant, il convient d'utiliser la commande **init** ou **telinit** suivie du numéro du nouveau niveau d'exécutionCes commandes peuvent prendre plusieurs options :+/usr/lib/systemd/system/runlevel5.target.wants: 
 +total 0 
 +</code>
  
-^ Option ^ Description ^ +====LAB #1 La Commande systemctl====
-| Q ou q | Demande à Init de relire le fichier /etc/inittab | +
--t | Permet de modifier le temps accordé par Init aux processus entre l'envoi du signal SIGTERM et l'envoi du signal SIGKILL |+
  
-====Inittab==== +Pour visualiser la liste des Unités, il convient d'utiliser la commande **systemctl** avec l'option **list-units** :
- +
-Le fichier **/etc/inittab** permet de définir les services à démarrer en fonction du RUNLEVEL :+
  
 <code> <code>
-[root@centos5 ~]# cat /etc/inittab +[root@centos8 ~]# systemctl list-units 
-# +UNIT                                                                                      LOAD   ACTIVE SUB       DESCRIPTION                                                                   
-# inittab       This file describes how the INIT process should set up +proc-sys-fs-binfmt_misc.automount                                                         loaded active waiting   Arbitrary Executable File Formats File System Automount Point                 
-#               the system in a certain run-level+sys-devices-pci0000:00-0000:00:01.1-ata2-host1-target1:0:0-1:0:0:0-block-sr0.device       loaded active plugged   CD-ROM                                                                        
-# +sys-devices-pci0000:00-0000:00:03.0-net-enp0s3.device                                     loaded active plugged   82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter)             
-# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org> +sys-devices-pci0000:00-0000:00:05.0-sound-card0.device                                    loaded active plugged   82801AA AC'97 Audio Controller                                                
-#               Modified for RHS Linux by Marc Ewing and Donnie Barnes +sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda1.device  loaded active plugged   VBOX_HARDDISK 1                                                               
-#+sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda2.device  loaded active plugged   VBOX_HARDDISK 2                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda3.device  loaded active plugged   VBOX_HARDDISK 3                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda.device       loaded active plugged   VBOX_HARDDISK                                                                 
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb1.device  loaded active plugged   VBOX_HARDDISK 1                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb10.device loaded active plugged   VBOX_HARDDISK 10                                                              
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb11.device loaded active plugged   VBOX_HARDDISK my_ext4                                                         
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb12.device loaded active plugged   VBOX_HARDDISK 12                                                              
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb2.device  loaded active plugged   VBOX_HARDDISK 2                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb3.device  loaded active plugged   VBOX_HARDDISK 3                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb4.device  loaded active plugged   VBOX_HARDDISK 4                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb5.device  loaded active plugged   VBOX_HARDDISK 5                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb6.device  loaded active plugged   VBOX_HARDDISK 6                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb7.device  loaded active plugged   VBOX_HARDDISK 7                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb8.device  loaded active plugged   VBOX_HARDDISK 8                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb-sdb9.device  loaded active plugged   VBOX_HARDDISK 9                                                               
 +sys-devices-pci0000:00-0000:00:0d.0-ata4-host3-target3:0:0-3:0:0:0-block-sdb.device       loaded active plugged   VBOX_HARDDISK                                                                 
 +sys-devices-platform-serial8250-tty-ttyS0.device                                          loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS0                                    
 +sys-devices-platform-serial8250-tty-ttyS1.device                                          loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS1                                    
 +sys-devices-platform-serial8250-tty-ttyS2.device                                          loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS2                                    
 +sys-devices-platform-serial8250-tty-ttyS3.device                                          loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS3                                    
 +sys-devices-virtual-block-dm\x2d0.device                                                  loaded active plugged   /sys/devices/virtual/block/dm-0                                               
 +sys-devices-virtual-block-dm\x2d1.device                                                  loaded active plugged   /sys/devices/virtual/block/dm-1                                               
 +sys-devices-virtual-net-virbr0.device                                                     loaded active plugged   /sys/devices/virtual/net/virbr0                                               
 +sys-devices-virtual-net-virbr0\x2dnic.device                                              loaded active plugged   /sys/devices/virtual/net/virbr0-nic                                           
 +sys-module-configfs.device                                                                loaded active plugged   /sys/module/configfs                                                          
 +sys-subsystem-net-devices-enp0s3.device                                                   loaded active plugged   82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter)             
 +sys-subsystem-net-devices-virbr0.device                                                   loaded active plugged   /sys/subsystem/net/devices/virbr0                                             
 +sys-subsystem-net-devices-virbr0\x2dnic.device                                            loaded active plugged   /sys/subsystem/net/devices/virbr0-nic                                         
 +-.mount                                                                                   loaded active mounted   Root Mount                                                                    
 +boot.mount                                                                                loaded active mounted   /boot                                                                         
 +dev-hugepages.mount                                                                       loaded active mounted   Huge Pages File System                                                        
 +dev-mqueue.mount                                                                          loaded active mounted   POSIX Message Queue File System                                               
 +run-user-1000.mount                                                                       loaded active mounted   /run/user/1000                                                                
 +sys-kernel-config.mount                                                                   loaded active mounted   Kernel Configuration File System                                              
 +sys-kernel-debug.mount                                                                    loaded active mounted   Kernel Debug File System                                                      
 +sys-kernel-tracing.mount                                                                  loaded active mounted   /sys/kernel/tracing                                                           
 +var-lib-nfs-rpc_pipefs.mount                                                              loaded active mounted   RPC Pipe File System                                                          
 +cups.path                                                                                 loaded active running   CUPS Scheduler                                                                
 +systemd-ask-password-plymouth.path                                                        loaded active waiting   Forward Password Requests to Plymouth Directory Watch                         
 +systemd-ask-password-wall.path                                                            loaded active waiting   Forward Password Requests to Wall Directory Watch                             
 +init.scope                                                                                loaded active running   System and Service Manager                                                    
 +session-96.scope                                                                          loaded active running   Session 96 of user trainee                                                    
 +atd.service                                                                               loaded active running   Job spooling tools                                                            
 +auditd.service                                                                            loaded active running   Security Auditing Service                                                     
 +avahi-daemon.service                                                                      loaded active running   Avahi mDNS/DNS-SD Stack                                                       
 +chronyd.service                                                                           loaded active running   NTP client/server                                                             
 +crond.service                                                                             loaded active running   Command Scheduler                                                             
 +cups.service                                                                              loaded active running   CUPS Scheduler                                                                
 +dbus.service                                                                              loaded active running   D-Bus System Message Bus                                                      
 +dracut-shutdown.service                                                                   loaded active exited    Restore /run/initramfs on shutdown                                            
 +firewalld.service                                                                         loaded active running   firewalld - dynamic firewall daemon                                           
 +lines 1-57 
 +</code>
  
-# Default runlevel. The runlevels used by RHS are: +Pour consulter la liste des Unités inactifsutilisez la commande suivante :
-#   0 - halt (Do NOT set initdefault to this) +
-#   1 - Single user mode +
-#   2 - Multiuserwithout NFS (The same as 3, if you do not have networking) +
-#   3 - Full multiuser mode +
-#   4 - unused +
-#   5 - X11 +
-#   6 - reboot (Do NOT set initdefault to this) +
-#  +
-id:5:initdefault:+
  
-# System initialization+<code> 
-si::sysinit:/etc/rc.d/rc.sysinit +[root@centos8 ~]systemctl list-units --all | grep inactive | more 
- +● boot.automount                                                                                                 not-found inactive dead      boot.automount                                                                               
-l0:0:wait:/etc/rc.d/rc 0 +  proc-fs-nfsd.mount                                                                                             loaded    inactive dead      NFSD configuration filesystem                                                                
-l1:1:wait:/etc/rc.d/rc 1 +  proc-sys-fs-binfmt_misc.mount                                                                                  loaded    inactive dead      Arbitrary Executable File Formats File System                                                
-l2:2:wait:/etc/rc.d/rc 2 +  sys-fs-fuse-connections.mount                                                                                  loaded    inactive dead      FUSE Control File System                                                                     
-l3:3:wait:/etc/rc.d/rc 3 +● sysroot.mount                                                                                                  not-found inactive dead      sysroot.mount                                                                                
-l4:4:wait:/etc/rc.d/rc 4 +  tmp.mount                                                                                                      loaded    inactive dead      Temporary Directory (/tmp)                                                                   
-l5:5:wait:/etc/rc.d/rc 5 +  var-lib-machines.mount                                                                                         loaded    inactive dead      Virtual Machine and Container Storage                                                        
-l6:6:wait:/etc/rc.d/rc 6 +  systemd-ask-password-console.path                                                                              loaded    inactive dead      Dispatch Password Requests to Console Directory Watch                                        
- +● apparmor.service                                                                                               not-found inactive dead      apparmor.service                                                                             
-# Trap CTRL-ALT-DELETE +  auth-rpcgss-module.service                                                                                     loaded    inactive dead      Kernel Module supporting RPCSEC_GSS                                                          
-ca::ctrlaltdel:/sbin/shutdown -t3 -r now +  cpupower.service                                                                                               loaded    inactive dead      Configure CPU power related settings                                                         
- +● display-manager.service                                                                                        not-found inactive dead      display-manager.service                                                                      
-# When our UPS tells us power has failed, assume we have a few minutes +  dm-event.service                                                                                               loaded    inactive dead      Device-mapper event daemon                                                                   
-# of power left.  Schedule a shutdown for 2 minutes from now+  dnf-makecache.service                                                                                          loaded    inactive dead      dnf makecache                                                                                
-# This does, of course, assume you have powerd installed and your +  dracut-cmdline.service                                                                                         loaded    inactive dead      dracut cmdline hook                                                                          
-# UPS connected and working correctly.   +  dracut-initqueue.service                                                                                       loaded    inactive dead      dracut initqueue hook                                                                        
-pf::powerfail:/sbin/shutdown --h +2 "Power Failure; System Shutting Down" +  dracut-mount.service                                                                                           loaded    inactive dead      dracut mount hook                                                                            
- +  dracut-pre-mount.service                                                                                       loaded    inactive dead      dracut pre-mount hook                                                                        
-# If power was restored before the shutdown kicked in, cancel it+  dracut-pre-pivot.service                                                                                       loaded    inactive dead      dracut pre-pivot and cleanup hook                                                            
-pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" +  dracut-pre-trigger.service                                                                                     loaded    inactive dead      dracut pre-trigger hook                                                                      
- +  dracut-pre-udev.service                                                                                        loaded    inactive dead      dracut pre-udev hook                                                                         
- +  ebtables.service                                                                                               loaded    inactive dead      Ethernet Bridge Filtering tables                                                             
-# Run gettys in standard runlevels +  emergency.service                                                                                              loaded    inactive dead      Emergency Shell                                                                              
-1:2345:respawn:/sbin/mingetty tty1 +  initrd-cleanup.service                                                                                         loaded    inactive dead      Cleaning Up and Shutting Down Daemons                                                        
-2:2345:respawn:/sbin/mingetty tty2 +  initrd-parse-etc.service                                                                                       loaded    inactive dead      Reload Configuration from the Real Root                                                      
-3:2345:respawn:/sbin/mingetty tty3 +  initrd-switch-root.service                                                                                     loaded    inactive dead      Switch Root                                                                                  
-4:2345:respawn:/sbin/mingetty tty4 +  initrd-udevadm-cleanup-db.service                                                                              loaded    inactive dead      Cleanup udevd DB                                                                             
-5:2345:respawn:/sbin/mingetty tty5 +● ip6tables.service                                                                                              not-found inactive dead      ip6tables.service                                                                            
-6:2345:respawn:/sbin/mingetty tty6 +● ipset.service                                                                                                  not-found inactive dead      ipset.service                                                                                
- +● iptables.service                                                                                               not-found inactive dead      iptables.service                                                                             
-# Run xdm in runlevel 5 +  iscsi-onboot.service                                                                                           loaded    inactive dead      Special handling of early boot iSCSI sessions                                                
-x:5:respawn:/etc/X11/prefdm -nodaemon+  iscsi.service                                                                                                  loaded    inactive dead      Login and scanning of iSCSI devices                                                          
 +  iscsid.service                                                                                                 loaded    inactive dead      Open-iSCSI                                                                                   
 +  iscsiuio.service                                                                                               loaded    inactive dead      iSCSI UserSpace I/O driver                                                                   
 +  ldconfig.service                                                                                               loaded    inactive dead      Rebuild Dynamic Linker Cache                                                                 
 +  libvirt-guests.service                                                                                         loaded    inactive dead      Suspend/Resume Running libvirt Guests                                                        
 +  libvirtd.service                                                                                               loaded    inactive dead      Virtualization daemon                                                                        
 +  loadmodules.service                                                                                            loaded    inactive dead      Load legacy module configuration                                                             
 +● lvm2-activation.service                                                                                        not-found inactive dead      lvm2-activation.service                                                                      
 +  lvm2-lvmpolld.service                                                                                          loaded    inactive dead      LVM2 poll daemon                                                                             
 +  mdmonitor.service                                                                                              loaded    inactive dead      Software RAID monitoring and management                                                      
 +  microcode.service                                                                                              loaded    inactive dead      Load CPU microcode update                                                                    
 +● network.service                                                                                                not-found inactive dead      network.service                                                                              
 +  nfs-blkmap.service                                                                                             loaded    inactive dead      pNFS block layout mapping daemon                                                             
 +  nfs-convert.service                                                                                            loaded    inactive dead      Preprocess NFS configuration convertion                                                      
 +  nfs-idmapd.service                                                                                             loaded    inactive dead      NFSv4 ID-name mapping service                                                                
 +  nfs-mountd.service                                                                                             loaded    inactive dead      NFS Mount Daemon                                                                             
 +  nfs-server.service                                                                                             loaded    inactive dead      NFS server and services                                                                      
 +  nfs-utils.service                                                                                              loaded    inactive dead      NFS server and client services                                                               
 +  nfsdcld.service                                                                                                loaded    inactive dead      NFSv4 Client Tracking Daemon                                                                 
 +  nftables.service                                                                                               loaded    inactive dead      Netfilter Tables                                                                             
 +● ntpd.service                                                                                                   not-found inactive dead      ntpd.service                                                                                 
 +● ntpdate.service                                                                                                not-found inactive dead      ntpdate.service                                                                              
 +  plymouth-switch-root.service                                                                                   loaded    inactive dead      Plymouth switch root service                                                                 
 +  rc-local.service                                                                                               loaded    inactive dead      /etc/rc.d/rc.local Compatibility                                                             
 +  rescue.service                                                                                                 loaded    inactive dead      Rescue Shell                                                                                 
 +  rpc-gssd.service                                                                                               loaded    inactive dead      RPC security service for NFS client and server                                               
 +--More--
 </code> </code>
  
-Dans l'exemple ci-dessus, chaque ligne non-commentée est composée de quatre champs, séparés par le caractère **:** : +Les points noirs au début de certaines lignes dans la sortie ci-dessus sont en réalité des points blancs à l'écranCes points impliquent que le service, la cible ou l'unité spécifié n'a pas été trouvé sur le systèmePar exemple :
- +
-^ Champ ^ Nom ^ Description ^ +
-| 1 | Identifiant | Identifiant unique de la ligne composé de 1 à 4 caractères | +
-| 2 | RUNLEVELS | Liste des niveaux d'exécution concernés par la ligne | +
-| 3 | Action | Méthode utilisé pour lancer la commande se trouvant dans le champ 4 | +
-| 4 | Commande | Commande à lancer | +
- +
-Le champ **action** prend une des directives suivantes : +
- +
-^ Directive ^ Description ^ +
-| respawn | Le processus est relancé en cas d'arrêt de celui-ci | +
-| mingetty | Assure la gestion du terminal texte | +
-| once | Le processus n'est exécuté qu'une fois | +
-| wait | Le processus n'est exécuté qu'une foisInit attend la fin du processus avant de passer à la ligne suivante | +
-| boot | Le processus est exécuté au démarrage de la machine. Le champ RUNLEVELS est sans importance | +
-| bootwait | Le processus est exécuté au démarrage de la machine. Le champ RUNLEVELS est sans importance. Init attend la fin du processus avant de passer à la ligne suivante | +
-| off | Revient à commenter la ligne | +
-| ondemand | La même chose que respawn mais la commande est exécuté dans un des 3 pseudo-niveaux d'exécution | +
-| initdefault | Définit le niveau d'exécution par défaut | +
-| sysinit | La commande est exécutée au démarrage da la machine avant les lignes boot et bootwait | +
-| powerfail | La commande est exécutée quand init reçoit un signal SIGPWR d'un onduleur | +
-| powerwait | La commande est exécutée quand init reçoit un signal SIGPWR d'un onduleur. Init attend la fin du processus avant de passer à la ligne suivante | +
-| powerokwait | La commande est exécutée si Init reçoit un signal de rétablissement du courant | +
-| powerfailnow | La commande est exécutée quand Init reçoit un signal comme quoi la batterie de l'onduleur est presque vide | +
-| ctrlaltdel | La commande est exécutée quand Init reçoit un signal SIGINT. Ce signal est envoyé par la combinaison de touches [CTRL] [ALT] [SUPPR] | +
-| kbrequest | La commande est exécutée suivant des séquences de touches saisies au clavier | +
- +
-L'analyse de notre fichier d'exemple sous RHEL/CentOS 5 indique : +
- +
-^ Ligne ^ Description ^ +
-| id:5:initdefault: | Le niveau d'exécution par défaut est 5 | +
-| si::sysinit:/etc/rc.d/rc.sysinit | La commande /etc/rc.d/rc.sysinit est lancée au démarrage de la machine | +
-| l0:0:wait:/etc/rc.d/rc 0 | La commande /etc/rc.d/rc est lancée pour le niveau d'exécution 0 | +
-| l1:1:wait:/etc/rc.d/rc 1 | La commande /etc/rc.d/rc est lancée pour le niveau d'exécution 1 | +
-| l2:2:wait:/etc/rc.d/rc 2 | La commande /etc/rc.d/rc est lancée pour le niveau d'exécution 2 | +
-| l3:3:wait:/etc/rc.d/rc 3 | La commande /etc/rc.d/rc est lancée pour le niveau d'exécution 3 | +
-| l4:4:wait:/etc/rc.d/rc 4 | La commande /etc/rc.d/rc est lancée pour le niveau d'exécution 4 | +
-| l5:5:wait:/etc/rc.d/rc 5 | La commande /etc/rc.d/rc est lancée pour le niveau d'exécution 5 | +
-| l6:6:wait:/etc/rc.d/rc 6 | La commande /etc/rc.d/rc est lancée pour le niveau d'exécution 6 | +
-| ca::ctrlaltdel:/sbin/shutdown -t3 -r now | La commande /sbin/shutdown -t3 -r now est lancée si les touches  [CTRL] [ALT] [SUPPR] sont appuyées simultanément | +
-| pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" | La commande /sbin/shutdown -f -h +2 est lancée quand Init reçoit le signal SIGPWR | +
-| pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" | La commande /sbin/shutdown -c est lancée quand Init reçoit un signal de rétablissement du courant | +
-| 1:2345:respawn:/sbin/mingetty tty1 | Le terminal tty1 est initialisé par la commande /sbin/mingetty. Le terminal est disponible en appuyant sur les touches [CTRL] [ALT] [F1] | +
-| 2:2345:respawn:/sbin/mingetty tty2 | Le terminal tty2 est initialisé par la commande /sbin/mingetty. Le terminal est disponible en appuyant sur les touches [CTRL] [ALT] [F2] | +
-| 3:2345:respawn:/sbin/mingetty tty3 | Le terminal tty3 est initialisé par la commande /sbin/mingetty. Le terminal est disponible en appuyant sur les touches [CTRL] [ALT] [F3] | +
-| 4:2345:respawn:/sbin/mingetty tty4 | Le terminal tty4 est initialisé par la commande /sbin/mingetty. Le terminal est disponible en appuyant sur les touches [CTRL] [ALT] [F4] | +
-| 5:2345:respawn:/sbin/mingetty tty5 | Le terminal tty5 est initialisé par la commande /sbin/mingetty. Le terminal est disponible en appuyant sur les touches [CTRL] [ALT] [F5] | +
-| 6:2345:respawn:/sbin/mingetty tty6 | Le terminal tty6 est initialisé par la commande /sbin/mingetty. Le terminal est disponible en appuyant sur les touches [CTRL] [ALT] [F6] | +
-| x:5:respawn:/etc/X11/prefdm -nodaemon | xdm est lancé dans le niveau d'exécution 5 | +
- +
-====Scripts de Démarrage==== +
- +
-Naviguez à **/etc/rc.d** et saisissez la commande **ls** :+
  
 <code> <code>
-[root@centos5 ~]# cd /etc/rc.d +[root@centos8 ~]# systemctl status ntpd 
-[root@centos5 rc.d]# ls +Unit ntpd.service could not be found.
-init.d  rc0.d  rc2.d  rc4.d  rc6.d     rc.sysinit +
-rc      rc1.d  rc3.d  rc5.d  rc.local+
 </code> </code>
  
-===rc.sysinit sous RHEL/CentOS 5=== +Pour consulter la liste des Unités ainsi que leurs statuts, utilisez la commande suivante :
- +
-D'après l'étude du fichier **inittab** nous savons que le script rc.sysinit est exécuté en premier.  +
- +
-====Répertoire init.d==== +
- +
-Le répertoire **/etc/rc.d/init.d** contient les scripts permettant de lancer les services du système :+
  
 <code> <code>
-[root@centos5 rc.d]# ls init.d/* +[root@centos8 ~]# systemctl list-unit-files | more 
-init.d/abrtd         init.d/cpuspeed   init.d/iptables       init.d/netfs           init.d/portreserve  init.d/sandbox    init.d/vboxadd +UNIT FILE                                                              STATE     
-init.d/acpid         init.d/crond      init.d/irqbalance     init.d/network         init.d/postfix      init.d/saslauthd  init.d/vboxadd-service +proc-sys-fs-binfmt_misc.automount                                      static    
-init.d/atd           init.d/cups       init.d/jexec          init.d/NetworkManager  init.d/psacct       init.d/single     init.d/vboxadd-x11 +-.mount                                                                generated 
-init.d/auditd        init.d/dnsmasq    init.d/kdump          init.d/nfs             init.d/rdisc        init.d/smartd     init.d/wpa_supplicant +boot.mount                                                             generated 
-init.d/autofs        init.d/firstboot  init.d/killall        init.d/nfslock         init.d/restorecond  init.d/snmpd      init.d/ypbind +dev-hugepages.mount                                                    static    
-init.d/avahi-daemon  init.d/functions  init.d/lvm2-monitor   init.d/nscd            init.d/rpcbind      init.d/snmptrapd +dev-mqueue.mount                                                       static    
-init.d/bluetooth     init.d/haldaemon  init.d/mdmonitor      init.d/nslcd           init.d/rpcgssd      init.d/sshd +proc-fs-nfsd.mount                                                     static    
-init.d/certmonger    init.d/halt       init.d/messagebus     init.d/ntpd            init.d/rpcidmapd    init.d/sssd +proc-sys-fs-binfmt_misc.mount                                          static    
-init.d/cgconfig      init.d/httpd      init.d/microcode_ctl  init.d/ntpdate         init.d/rpcsvcgssd   init.d/sysstat +sys-fs-fuse-connections.mount                                          static    
-init.d/cgred         init.d/ip6tables  init.d/netconsole     init.d/oddjobd         init.d/rsyslog      init.d/udev-post+sys-kernel-config.mount                                                static    
 +sys-kernel-debug.mount                                                 static    
 +tmp.mount                                                              disabled  
 +var-lib-machines.mount                                                 static    
 +var-lib-nfs-rpc_pipefs.mount                                           static    
 +cups.path                                                              enabled   
 +systemd-ask-password-console.path                                      static    
 +systemd-ask-password-plymouth.path                                     static    
 +systemd-ask-password-wall.path                                         static    
 +session-96.scope                                                       transient 
 +arp-ethers.service                                                     disabled  
 +atd.service                                                            enabled   
 +auditd.service                                                         enabled   
 +auth-rpcgss-module.service                                             static    
 +autovt@.service                                                        enabled   
 +avahi-daemon.service                                                   enabled   
 +blk-availability.service                                               disabled  
 +chrony-dnssrv@.service                                                 static    
 +chrony-wait.service                                                    disabled  
 +chronyd.service                                                        enabled   
 +cockpit-motd.service                                                   static    
 +cockpit-wsinstance-http-redirect.service                               static    
 +cockpit-wsinstance-http.service                                        static    
 +cockpit-wsinstance-https-factory@.service                              static    
 +cockpit-wsinstance-https@.service                                      static    
 +cockpit.service                                                        static    
 +console-getty.service                                                  disabled  
 +container-getty@.service                                               static    
 +cpupower.service                                                       disabled  
 +crond.service                                                          enabled   
 +cups-browsed.service                                                   disabled  
 +cups.service                                                           enabled   
 +dbus-org.fedoraproject.FirewallD1.service                              enabled   
 +dbus-org.freedesktop.Avahi.service                                     enabled   
 +dbus-org.freedesktop.hostname1.service                                 static    
 +dbus-org.freedesktop.import1.service                                   static    
 +dbus-org.freedesktop.locale1.service                                   static    
 +dbus-org.freedesktop.login1.service                                    static    
 +dbus-org.freedesktop.machine1.service                                  static    
 +dbus-org.freedesktop.nm-dispatcher.service                             enabled   
 +dbus-org.freedesktop.portable1.service                                 static    
 +dbus-org.freedesktop.timedate1.service                                 enabled   
 +dbus.service                                                           static    
 +debug-shell.service                                                    disabled  
 +dm-event.service                                                       static    
 +dnf-makecache.service                                                  static    
 +dnsmasq.service                                                        disabled  
 +dracut-cmdline.service                                                 static    
 +--More--
 </code> </code>
  
-====Linux Standard Base====+Pour visualiser les Unités d'un type spécifique, il convient d'utiliser l'option **-t** :
  
-**[[http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/tocsysinit.html|Linux Standard Base]]** (LSB) fut introduit par le **[[http://www.linuxfoundation.org/|Linux Foundation]]** dans un but de permettre la portabilité des scripts init entre distributions différentes.+<code> 
 +[root@centos8 ~]# systemctl list-unit-files -t mount 
 +UNIT FILE                     STATE     
 +-.mount                       generated 
 +boot.mount                    generated 
 +dev-hugepages.mount           static    
 +dev-mqueue.mount              static    
 +proc-fs-nfsd.mount            static    
 +proc-sys-fs-binfmt_misc.mount static    
 +sys-fs-fuse-connections.mount static    
 +sys-kernel-config.mount       static    
 +sys-kernel-debug.mount        static    
 +tmp.mount                     disabled  
 +var-lib-machines.mount        static    
 +var-lib-nfs-rpc_pipefs.mount  static   
  
-Les scripts init qui sont conformes au standard LSB doivent fournir :+12 unit files listed. 
 +</code>
  
-  * au moins les actions **start**, **stop**, **restart**, **force-reload** et **status**, +Dans la colonne STATE on voit les mots **static** et **generated**. 
-  des codes retours standardisés, +
-  des informations sur des dépendances.+
  
-Les scripts init conforment au standard LSB peuvent aussi fournir :+  * STATE = static 
 +    * Ceci implique que l'Unité ne peut ni être démarrée, ni être arrêtée par l'administrateur. Le démarrage et l'arrêt d'une telle Unité est effectué par le système. En règle générale, les Unités dont le STATE est static sont des dépendances d'autres Unité
  
-  * les actions **reload** et **try-restart**, +  * STATE = generated 
-  des messages de journalisation en utilisant les fonctions Init.d **log_success_msg**, **log_failure_msg** et **log_warning_msg**. +    Ceci implique que le fichier a été généré automatiquement en utilisant les informations dans le fichier **/etc/fstab** lors du démarrage du systèmeDans le cas d'un point de montage, l'exécutable respopnsable de la génération du fichier est **/lib/systemd/system-generators/systemd-fstab-generator** :
- +
-Les fonctions proposées par défaut par LSB sont contenues dans le fichier **/lib/lsb/init-functions** :+
  
 <code> <code>
-[root@centos5 ~]# cat /lib/lsb/init-functions +[root@centos8 ~]# ls -l /lib/systemd/system-generators/systemd-fstab-generator 
-#!/bin/sh +-rwxr-xr-x1 root root 46096 Apr  7 16:56 /lib/systemd/system-generators/systemd-fstab-generator
- +
-# LSB initscript functions, as defined in the LSB Spec 1.1.0 +
-+
-# Lawrence Lim <llim@redhat.com> Tue, 26 June 2007 +
-# Updated to the latest LSB 3.1 spec +
-# http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic_lines.txt +
- +
-start_daemon () { +
- /etc/redhat-lsb/lsb_start_daemon "$@" +
-+
- +
-killproc () { +
- /etc/redhat-lsb/lsb_killproc "$@" +
-+
- +
-pidofproc () { +
- /etc/redhat-lsb/lsb_pidofproc "$@" +
-+
- +
-log_success_msg () { +
- /etc/redhat-lsb/lsb_log_message success "$@" +
-+
- +
-log_failure_msg () { +
- /etc/redhat-lsb/lsb_log_message failure "$@" +
-+
- +
-log_warning_msg () { +
- /etc/redhat-lsb/lsb_log_message warning "$@" +
-+
 </code> </code>
  
-Ces fonctions sont des scripts se trouvant dans le répertoire **/etc/redhat-lsb** :+Il existe aussi d'autres exécutables responsables de la génération d'autres fichiers :
  
 <code> <code>
-[root@centos5 ~]# ls -l /etc/redhat-lsb+[root@centos8 ~]# ls -l /lib/systemd/system-generators 
-total 16 +total 508 
--rwxr-xr-x. 1 root root  70 22 févr.  2013 lsb_killproc +-rwxr-xr-x. 1 root root    504 Jan  4 11:25 kdump-dep-generator.sh 
--rwxr-xr-x. 1 root root 243 22 févr.  2013 lsb_log_message +-r-xr-xr-x. 1 root root 134976 Aug 17  2020 lvm2-activation-generator 
--rwxr-xr-x. 1 root root  59 22 févr.  2013 lsb_pidofproc +-rwxr-xr-x. 1 root root  67792 Jul 20  2020 nfs-server-generator 
--rwxr-xr-x. 1 root root 650 22 févr.  2013 lsb_start_daemon+-rwxr-xr-x. 1 root root  38216 Jul 20  2020 rpc-pipefs-generator 
 +-rwxr-xr-x. 1 root root    743 Apr 23  2020 selinux-autorelabel-generator.sh 
 +-rwxr-xr-x. 1 root root  33504 Apr  7 16:56 systemd-cryptsetup-generator 
 +-rwxr-xr-x. 1 root root  16648 Apr  7 16:56 systemd-debug-generator 
 +-rwxr-xr-x1 root root  46096 Apr  7 16:56 systemd-fstab-generator 
 +-rwxr-xr-x. 1 root root  17064 Apr  7 16:56 systemd-getty-generator 
 +-rwxr-xr-x1 root root  29432 Apr  7 16:56 systemd-gpt-auto-generator 
 +-rwxr-xr-x. 1 root root  12568 Apr  7 16:56 systemd-hibernate-resume-generator 
 +-rwxr-xr-x1 root root  12368 Apr  7 16:56 systemd-rc-local-generator 
 +-rwxr-xr-x. 1 root root  12408 Apr  7 16:56 systemd-system-update-generator 
 +-rwxr-xr-x1 root root  33544 Apr  7 16:56 systemd-sysv-generator 
 +-rwxr-xr-x. 1 root root  17024 Apr  7 16:56 systemd-veritysetup-generator
 </code> </code>
  
-L'examen de ces scripts nous démontre que le système appelle le fichier **/etc/init.d/functions** :+Les options de la commande **systemctl** sont :
  
 <code> <code>
-[root@centos5 ~]# cat /etc/redhat-lsb/lsb_killproc  +[root@centos8 ~]# systemctl --help 
-#!/bin/bash+systemctl [OPTIONS...] {COMMAND} ...
  
-/etc/init.d/functions+Query or send control commands to the systemd manager.
  
-LSB=LSB-1.1 killproc $* +  -h --help           Show this help 
-exit $? +     --version        Show package version 
-[root@centos ~]# +     --system         Connect to system manager 
-[root@centos ~]# cat /etc/redhat-lsb/lsb_pidofproc  +     --user           Connect to user service manager 
-#!/bin/bash+  -H --host=[USER@]HOST 
 +                      Operate on remote host 
 +  -M --machine=CONTAINER 
 +                      Operate on local container 
 +  -t --type=TYPE      List units of a particular type 
 +     --state=STATE    List units with particular LOAD or SUB or ACTIVE state 
 +  -p --property=NAME  Show only properties by this name 
 +  -a --all            Show all properties/all units currently in memory, 
 +                      including dead/empty ones. To list all units installed on 
 +                      the system, use the 'list-unit-files' command instead. 
 +     --failed         Same as --state=failed 
 +  -l --full           Don't ellipsize unit names on output 
 +  -r --recursive      Show unit list of host and local containers 
 +     --reverse        Show reverse dependencies with 'list-dependencies' 
 +     --job-mode=MODE  Specify how to deal with already queued jobs, when 
 +                      queueing a new job 
 +     --show-types     When showing sockets, explicitly show their type 
 +     --value          When showing properties, only print the value 
 +  -i --ignore-inhibitors 
 +                      When shutting down or sleeping, ignore inhibitors 
 +     --kill-who=WHO   Who to send signal to 
 +  -s --signal=SIGNAL  Which signal to send 
 +     --now            Start or stop unit in addition to enabling or disabling it 
 +     --dry-run        Only print what would be done 
 +  -q --quiet          Suppress output 
 +     --wait           For (re)start, wait until service stopped again 
 +     --no-block       Do not wait until operation finished 
 +     --no-wall        Don't send wall message before halt/power-off/reboot 
 +     --no-reload      Don't reload daemon after en-/dis-abling unit files 
 +     --no-legend      Do not print a legend (column headers and hints) 
 +     --no-pager       Do not pipe output into a pager 
 +     --no-ask-password 
 +                      Do not ask for system passwords 
 +     --global         Enable/disable/mask unit files globally 
 +     --runtime        Enable/disable/mask unit files temporarily until next 
 +                      reboot 
 +  -f --force          When enabling unit files, override existing symlinks 
 +                      When shutting down, execute action immediately 
 +     --preset-mode=   Apply only enable, only disable, or all presets 
 +     --root=PATH      Enable/disable/mask unit files in the specified root 
 +                      directory 
 +  -n --lines=INTEGER  Number of journal entries to show 
 +  -o --output=STRING  Change journal output mode (short, short-precise, 
 +                             short-iso, short-iso-precise, short-full, 
 +                             short-monotonic, short-unix, 
 +                             verbose, export, json, json-pretty, json-sse, cat) 
 +     --firmware-setup Tell the firmware to show the setup menu on next boot 
 +     --plain          Print unit dependencies as a list instead of a tree
  
-. /etc/init.d/functions +lines 1-57
- +
-pidofproc $* +
-exit $?+
 </code> </code>
  
-Le fichier **/etc/init.d/functions** contient les fonctions à exécuter, par exemple :+====LAB #2 - Fichiers de Configuration====
  
-<file> +===2.1 - Fichiers de Configuration par Défaut===
-... +
-# A function to stop a program. +
-killproc() { +
-        local RC killlevelbase pid pid_filedelay try binary=+
  
-        RC=0; delay=3; try=0 +Les fichiers de configuration des Cibles et fichiers de configuration des Unités installés par des paquets se trouvent dans le répertoire **/usr/lib/systemd/system** :
-        # Test syntax. +
-        if [ "$#" -eq 0 ]; then +
-                echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]" +
-                return 1 +
-        fi +
-        if [ "$1" = "-p" ]; then +
-                pid_file=$2 +
-                shift 2 +
-        fi +
-        if [ "$1" = "-b" ]; then +
-                if [ -z $pid_file ]; then +
-                        echo $"-b option can be used only with -p" +
-                        echo $"Usage: killproc -p pidfile -b binary program" +
-                        return 1 +
-                fi +
-                binary=$2 +
-                shift 2 +
-        fi +
-        if [ "$1" = "-d" ]; then +
-                delay=$(echo $2 | awk -v RS=' ' -v IGNORECASE=1 '{if($1!~/^[0-9.]+[smhd]?$/) exit 1;d=$1~/s$|^[0-9.]*$/?1:$1~/m$/?60:$1~/h$/?60*60:$1~/d$/?24*60*60:-1;if(d==-1) exit 1;delay+=d*$1} END {printf("%d",delay+0.5)}'+
-                if [ "$?" -eq 1 ]; then +
-                        echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]" +
-                        return 1 +
-                fi +
-                shift 2 +
-... +
-</file>+
  
-et+<code> 
 +[root@centos8 ~]# pkg-config systemd --variable=systemdsystemunitdir 
 +/usr/lib/systemd/system 
 +</code>
  
-<file+<code
-... +[root@centos8 ~]# ls -l /usr/lib/systemd/system | more 
-pidofproc() { +total 1464 
-        local RC pid pid_file=+-rw-r--r--1 root root  275 Apr 26  2020 arp-ethers.service 
 +-rw-r--r--1 root root  222 May 11  2019 atd.service 
 +-rw-r--r--. 1 root root 1512 Apr 23  2020 auditd.service 
 +-rw-r--r--. 1 root root  628 Jul 20  2020 auth-rpcgss-module.service 
 +lrwxrwxrwx. 1 root root   14 Apr  7 16:55 autovt@.service -> getty@.service 
 +-rw-r--r--. 1 root root 1044 Nov 16  2020 avahi-daemon.service 
 +-rw-r--r--. 1 root root  870 Nov 16  2020 avahi-daemon.socket 
 +-rw-r--r--. 1 root root  956 Apr  7 16:54 basic.target 
 +drwxr-xr-x. 2 root root    6 Apr  7 16:55 basic.target.wants 
 +-r--r--r--. 1 root root  408 Aug 17  2020 blk-availability.service 
 +-rw-r--r--. 1 root root  419 Jun 22  2018 bluetooth.target 
 +-rw-r--r--. 1 root root  455 Apr  7 16:54 boot-complete.target 
 +-rw-r--r--. 1 root root  209 Nov 19  2019 chrony-dnssrv@.service 
 +-rw-r--r--. 1 root root  138 Nov 19  2019 chrony-dnssrv@.timer 
 +-rw-r--r--. 1 root root  491 Nov 19  2019 chronyd.service 
 +-rw-r--r--. 1 root root  472 May 10  2019 chrony-wait.service 
 +-rw-r--r--. 1 root root  222 Aug 24  2020 cockpit-motd.service 
 +-rw-r--r--. 1 root root  835 Aug 24  2020 cockpit.service 
 +-rw-r--r--. 1 root root  373 Aug 24  2020 cockpit.socket 
 +-rw-r--r--. 1 root root  251 Aug 24  2020 cockpit-wsinstance-http-redirect.service 
 +-rw-r--r--. 1 root root  233 Aug 24  2020 cockpit-wsinstance-http-redirect.socket 
 +-rw-r--r--. 1 root root  221 Aug 24  2020 cockpit-wsinstance-http.service 
 +-rw-r--r--. 1 root root  165 Aug 24  2020 cockpit-wsinstance-https-factory@.service 
 +-rw-r--r--. 1 root root  244 Aug 24  2020 cockpit-wsinstance-https-factory.socket 
 +-rw-r--r--. 1 root root  215 Aug 24  2020 cockpit-wsinstance-http.socket 
 +-rw-r--r--. 1 root root  264 Aug 24  2020 cockpit-wsinstance-https@.service 
 +-rw-r--r--. 1 root root  478 Aug 24  2020 cockpit-wsinstance-https@.socket 
 +-rw-r--r--. 1 root root 1082 Apr  7 16:55 console-getty.service 
 +-rw-r--r--. 1 root root 1263 Apr  7 16:55 container-getty@.service 
 +-rw-r--r--. 1 root root  294 Apr  8 15:21 cpupower.service 
 +-rw-r--r--. 1 root root  356 Nov  8  2019 crond.service 
 +-rw-r--r--. 1 root root  465 Jun 22  2018 cryptsetup-pre.target 
 +-rw-r--r--. 1 root root  412 Jun 22  2018 cryptsetup.target 
 +lrwxrwxrwx. 1 root root   13 Apr  7 16:55 ctrl-alt-del.target -> reboot.target 
 +-rw-r--r--. 1 root root  234 Oct  4  2017 cups-browsed.service 
 +-r--r--r--. 1 root root  142 Jun 15  2020 cups.path 
 +-r--r--r--. 1 root root  248 Jun 15  2020 cups.service 
 +-r--r--r--. 1 root root  136 Jun 15  2020 cups.socket 
 +lrwxrwxrwx. 1 root root   25 Apr  7 16:55 dbus-org.freedesktop.hostname1.service -> systemd-hostnamed.service 
 +lrwxrwxrwx. 1 root root   23 Apr  7 16:55 dbus-org.freedesktop.import1.service -> systemd-importd.service 
 +lrwxrwxrwx. 1 root root   23 Apr  7 16:55 dbus-org.freedesktop.locale1.service -> systemd-localed.service 
 +lrwxrwxrwx. 1 root root   22 Apr  7 16:55 dbus-org.freedesktop.login1.service -> systemd-logind.service 
 +lrwxrwxrwx. 1 root root   24 Apr  7 16:55 dbus-org.freedesktop.machine1.service -> systemd-machined.service 
 +lrwxrwxrwx. 1 root root   25 Apr  7 16:55 dbus-org.freedesktop.portable1.service -> systemd-portabled.service 
 +lrwxrwxrwx. 1 root root   25 Apr  7 16:55 dbus-org.freedesktop.timedate1.service -> systemd-timedated.service 
 +-rw-r--r--. 1 root root  380 Apr  7 12:08 dbus.service 
 +-rw-r--r--. 1 root root  102 Apr  7 12:08 dbus.socket 
 +drwxr-xr-x. 2 root root    6 Apr  7 16:55 dbus.target.wants 
 +-rw-r--r--. 1 root root 1084 Apr  7 16:55 debug-shell.service 
 +lrwxrwxrwx. 1 root root   16 Apr  7 16:55 default.target -> graphical.target 
 +drwxr-xr-x. 2 root root    6 Apr  7 16:55 default.target.wants 
 +-rw-r--r--. 1 root root  750 Jun 22  2018 dev-hugepages.mount 
 +-rw-r--r--. 1 root root  665 Jun 22  2018 dev-mqueue.mount 
 +-r--r--r--. 1 root root  345 Aug 17  2020 dm-event.service 
 +-r--r--r--. 1 root root  248 Aug 17  2020 dm-event.socket 
 +-rw-r--r--. 1 root root  457 Jun  2  2020 dnf-makecache.service 
 +--More-- 
 +</code>
  
-        # Test syntax. +Certains fichiers de configuration sont créés à la volée dans le répertoire **/run/systemd/system** lors du runtime puis ils sont détruits quand le système n'en a plus besoin :
-        if [ "$#" = 0 ]; then +
-                echo $"Usage: pidofproc [-p pidfile] {program}" +
-                return 1 +
-        fi +
-        if [ "$1" = "-p" ]; then +
-                pid_file=$2 +
-                shift 2 +
-        fi +
-        fail_code=3 # "Program is not running" +
- +
-        # First try "/var/run/*.pid" files +
-        __pids_var_run "$1" "$pid_file" +
-        RC=$? +
-        if [ -n "$pid" ]; then +
-                echo $pid +
-                return 0 +
-        fi +
- +
-        [ -n "$pid_file" ] && return $RC +
-        __pids_pidof "$1" || return $RC +
-+
-... +
-</file> +
- +
-===Codes Retour Standardisés=== +
- +
-Les codes retour standardisés sont +
- +
-^ Code Retour ^ Description ^ +
-| 0 | Le programme fonctionne et le service est correctement démarré | +
-| 1 | Le programme est mort et le fichier pid dans /var/run existe | +
-| 2 | Le programme est mort et le fichier verrou dans /var/lock existe | +
-| 3 | Le programme ne fonctionne pas et le service n'est pas correctement démarré | +
-| 4 | Le statut du programme ou du service est inconnu | +
-| 5 - 99 | Réservés pour LSB | +
-| 100-149 | Réserves pour la distribution | +
-| 150-199 | Réservés pour l'application | +
-| 200-254 | Réservés | +
- +
-===Scripts=== +
- +
-LSB stipule un format //rigide// de script qui commence par une section délimitée par deux clauses : +
- +
-  * **### BEGIN INIT INFO**, +
-  * **### END INIT INFO**. +
- +
-Par exemple :+
  
 <code> <code>
-[root@centos5 ~]# more /etc/rc.d/init.d/sshd +[root@centos8 ~]# ls -l /run/systemd/system
-#!/bin/bash +total 0
-+
-# sshd Start up the OpenSSH server daemon +
-+
-# chkconfig: 2345 55 25 +
-# description: SSH is a protocol for secure remote shell access. \ +
-#              This service starts up the OpenSSH server daemon. +
-+
-# processname: sshd +
-# config: /etc/ssh/ssh_host_key +
-# config: /etc/ssh/ssh_host_key.pub +
-# config: /etc/ssh/ssh_random_seed +
-# config: /etc/ssh/sshd_config +
-# pidfile: /var/run/sshd.pid +
- +
-### BEGIN INIT INFO +
-# Provides: sshd +
-# Required-Start: $local_fs $network $syslog +
-# Required-Stop: $local_fs $syslog +
-# Should-Start: $syslog +
-# Should-Stop: $network $syslog +
-# Default-Start: 2 3 4 5 +
-# Default-Stop: 1 6 +
-# Short-Description: Start up the OpenSSH server daemon +
-# Description:       SSH is a protocol for secure remote shell access. +
-#      This service starts up the OpenSSH server daemon. +
-### END INIT INFO +
- +
-# source function library +
-. /etc/rc.d/init.d/functions +
- +
-# pull in sysconfig settings +
-[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd +
---Plus--(20%)+
 </code> </code>
  
-Les lignes se trouvant entre les deux clauses ont un format spécifique :+Les fichiers de configuration des Unités crées par les utilisateurs doivent être mis dans le répertoire **/usr/lib/systemd/user** :
  
 <code> <code>
-# {MotClef}: valeur1 [valeur2...]+[root@centos8 ~]# pkg-config systemd --variable=systemduserunitdir 
 +/usr/lib/systemd/user
 </code> </code>
  
-<WRAP center round important> +<WRAP center round important 60%
-**Important** : Notez qu'à part la deuxième ligne de la description, chaque ligne **doit** commencer par le caractère **#** suivi par un espace.+**Important** : De cette façon les fichiers dans **/usr/lib/systemd/user** surchargent les fichiers dans le répertoire **/run/systemd/system** qui surchargent les fichiers dans le répertoire **/usr/lib/systemd/system**.
 </WRAP> </WRAP>
  
-Les Mots Clefs sont :+Prenons le cas du service **sshd** qui est configuré par le fichier **/usr/lib/systemd/system/sshd.service** :
  
-^ Mot Clef ^ Description ^ +<code> 
-| Provides | Indique le service -(//boot facilities// en anglais) démarré par le scriptLe nom doit être unique. | +[root@centos8 ~]# cat /usr/lib/systemd/system/sshd.service 
-| Required-start | Indique d'autres services qui doivent être démarrés avant le démarrage de celui indiqué par le mot-clef **Provides**.  | +[Unit] 
-| Required-Stop | Indique d'autres services qui doivent être arrêtés **après** l'arrêt de celui indiqué par le mot-clef **Provides**. | +Description=OpenSSH server daemon 
-| Should-Start | Indique d'autres services qui, s'ils sont présents sur le système, être démarrés avant le démarrage de celui indiqué par le mot-clef **Provides**. | +Documentation=man:sshd(8) man:sshd_config(5) 
-| Should-Stop | Indique d'autres services qui, s'ils sont présents sur le système, doivent être arrêtés **après** l'arrêt de celui indiqué par le mot-clef **Provides**+After=network.target sshd-keygen.target 
-| Default-Start | Indique les niveaux d'exécution dans lesquels le service doit être démarré| +Wants=sshd-keygen.target
-| Default-Stop | Indique les niveaux d'exécution dans lesquels le service doit être arrêté. | +
-| Short-Description | Indique une description du service en **une seule ligne**. | +
-| Description | Indique une description multi-lignes du service|+
  
-Il existe des groupements de services, appelés en anglais des //Virtual Facilities//. Les plus importants sont :+[Service] 
 +Type=notify 
 +EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config 
 +EnvironmentFile=-/etc/sysconfig/sshd 
 +ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY 
 +ExecReload=/bin/kill -HUP $MAINPID 
 +KillMode=process 
 +Restart=on-failure 
 +RestartSec=42s
  
-^ Virtual Facility ^ Description ^ +[Install
-| $local_fs | Tous les systèmes de fichiers locaux doivent être montés. | +WantedBy=multi-user.target
-| $network | La carte Ethernet doit fonctionner | +
-| $named | Les daemons, si présents, responsables de la résolution des noms tels DNS, NIS+ ou LDAP doivent être démarrés. | +
-| $portmap | Les daemons qui fournissent le //SunRPC/ONCRPC port mapping// doivent être démarrés. | +
-| $remote_fs | Tous les systèmes de fichiers doivent être montés. | +
-| $syslog | Syslog, Syslog-ng ou Rsyslog doit être démarré. | +
-| $time | L'heure du système doit avoir été fixé soit par NTP, soit par rdate soit par l'horloge système. | +
- +
-====Répertoires rcx.d==== +
- +
-Les répertoires **rc0.d** à **rc6.d** contiennent des liens vers les scripts du répertoire **init.d**. +
- +
-Pour mieux comprendre, saisissez les commandes suivantes : +
- +
-<code> +
-[root@centos5 rc.d]# for rep in rc[345].d; do echo "dans $rep :"; ls $rep/S*; done +
-dans rc3.d : +
-rc3.d/S00microcode_ctl  rc3.d/S10network      rc3.d/S13irqbalance      rc3.d/S24avahi-daemon  rc3.d/S25netfs      rc3.d/S30vboxadd          rc3.d/S80postfix +
-rc3.d/S01sysstat        rc3.d/S11auditd       rc3.d/S13rpcbind         rc3.d/S24nfslock       rc3.d/S26acpid      rc3.d/S30vboxadd-x11      rc3.d/S82abrtd +
-rc3.d/S02lvm2-monitor   rc3.d/S11portreserve  rc3.d/S15mdmonitor       rc3.d/S24rpcgssd       rc3.d/S26haldaemon  rc3.d/S35vboxadd-service  rc3.d/S90crond +
-rc3.d/S08ip6tables      rc3.d/S12rsyslog      rc3.d/S22messagebus      rc3.d/S24rpcidmapd     rc3.d/S26udev-post  rc3.d/S50bluetooth        rc3.d/S95atd +
-rc3.d/S08iptables       rc3.d/S13cpuspeed     rc3.d/S23NetworkManager  rc3.d/S25cups          rc3.d/S28autofs     rc3.d/S55sshd             rc3.d/S99local +
-dans rc4.d : +
-rc4.d/S00microcode_ctl  rc4.d/S10network      rc4.d/S13irqbalance      rc4.d/S24avahi-daemon  rc4.d/S25netfs      rc4.d/S30vboxadd          rc4.d/S90crond +
-rc4.d/S01sysstat        rc4.d/S11auditd       rc4.d/S13rpcbind         rc4.d/S24nfslock       rc4.d/S26acpid      rc4.d/S35vboxadd-service  rc4.d/S95atd +
-rc4.d/S02lvm2-monitor   rc4.d/S11portreserve  rc4.d/S15mdmonitor       rc4.d/S24rpcgssd       rc4.d/S26haldaemon  rc4.d/S50bluetooth        rc4.d/S99local +
-rc4.d/S08ip6tables      rc4.d/S12rsyslog      rc4.d/S22messagebus      rc4.d/S24rpcidmapd     rc4.d/S26udev-post  rc4.d/S55sshd +
-rc4.d/S08iptables       rc4.d/S13cpuspeed     rc4.d/S23NetworkManager  rc4.d/S25cups          rc4.d/S28autofs     rc4.d/S80postfix +
-dans rc5.d : +
-rc5.d/S00microcode_ctl  rc5.d/S10network      rc5.d/S13irqbalance      rc5.d/S24avahi-daemon  rc5.d/S25netfs      rc5.d/S30vboxadd          rc5.d/S80postfix +
-rc5.d/S01sysstat        rc5.d/S11auditd       rc5.d/S13rpcbind         rc5.d/S24nfslock       rc5.d/S26acpid      rc5.d/S30vboxadd-x11      rc5.d/S82abrtd +
-rc5.d/S02lvm2-monitor   rc5.d/S11portreserve  rc5.d/S15mdmonitor       rc5.d/S24rpcgssd       rc5.d/S26haldaemon  rc5.d/S35vboxadd-service  rc5.d/S90crond +
-rc5.d/S08ip6tables      rc5.d/S12rsyslog      rc5.d/S22messagebus      rc5.d/S24rpcidmapd     rc5.d/S26udev-post  rc5.d/S50bluetooth        rc5.d/S95atd +
-rc5.d/S08iptables       rc5.d/S13cpuspeed     rc5.d/S23NetworkManager  rc5.d/S25cups          rc5.d/S28autofs     rc5.d/S55sshd             rc5.d/S99local+
 </code> </code>
  
-<WRAP center round important> +Dans le fichier on peut noter la présence des lignes suivantes dans la section **[Unit]** :
-**Important** : Notez que chaque répertoire correspondant à un niveau d'exécution contient des liens pointant vers un script dans le répertoire **/etc/init.d**. La lettre **S** indique au script **rc** que le script dans **/etc/rc.d/init.d** doit être exécutée avec l'option **start**. De cette façon les processus sont lancés dans le niveau d'exécution spécifié. Le numéro qui suit la lettre **S** indique l'ordre de lancement par le script **rc**. Si deux scripts dans un répertoire **/etc/rc.d/rcX.d** ont le même numéro, l'ordre alphabétique prime. Notez aussi la présence du lien **S99local** qui lance le script **rc.local** en dernier. Le script rc.local est lancé dans les niveaux d'exécution **2, 3, 4 et 5**. C'est dans ce script que **root** peut ajouter des commandes. +
-</WRAP>+
  
-Rappelez la commande précédente et modifiez la lettre S en **K** :+  * **Description=OpenSSH server daemon**, 
 +    * Cette directive est utilisée pour donner une courte description des fonctionnalités de l'Unité, 
 +  * **Documentation=man:sshd(8) man:sshd_config(5)**, 
 +    * Cette directive stipule les chapitres des manuels et les URLs contenant de l'information en relation avec l'Unité, 
 +  * **After=network.target sshd-keygen.target**, 
 +    * Cette directive indique les cibles qui devraient être atteintes et les Unités qui devraient être démarrées avant l'Unité sshd. Par contre, cette directive ne spécifie pas une dépendance, 
 +  * **Wants=sshd-keygen.target**, 
 +    * Cette directive stipule une dépendance douce. Autrement dit, Systemd essayera de démarrer l'Unité **sshd-keygen.target** mais si ce démarrage est en échec, l'Unité sshd sera démarré.
  
-<code> +Dans le fichier on peut aussi noter la présence des lignes suivantes dans la section **[Service]*:
-[root@centos5 rc.d]# for rep in rc[345].d; do echo "dans $rep :"; ls $rep/K*; done +
-dans rc3.d : +
-rc3.d/K01certmonger  rc3.d/K10saslauthd   rc3.d/K50snmpd       rc3.d/K73ypbind   rc3.d/K80kdump           rc3.d/K87restorecond  rc3.d/K95firstboot +
-rc3.d/K01smartd      rc3.d/K15httpd       rc3.d/K50snmptrapd   rc3.d/K74nscd     rc3.d/K80sssd            rc3.d/K88nslcd +
-rc3.d/K02oddjobd     rc3.d/K50dnsmasq     rc3.d/K60nfs         rc3.d/K74ntpd     rc3.d/K84wpa_supplicant  rc3.d/K89rdisc +
-rc3.d/K10psacct      rc3.d/K50netconsole  rc3.d/K69rpcsvcgssd  rc3.d/K75ntpdate  rc3.d/K86cgred           rc3.d/K95cgconfig +
-dans rc4.d : +
-rc4.d/K01certmonger  rc4.d/K10saslauthd  rc4.d/K50netconsole  rc4.d/K69rpcsvcgssd   rc4.d/K74ntpd     rc4.d/K84wpa_supplicant  rc4.d/K89rdisc +
-rc4.d/K01smartd      rc4.d/K15httpd      rc4.d/K50snmpd       rc4.d/K70vboxadd-x11  rc4.d/K75ntpdate  rc4.d/K86cgred           rc4.d/K95cgconfig +
-rc4.d/K02oddjobd     rc4.d/K16abrtd      rc4.d/K50snmptrapd   rc4.d/K73ypbind       rc4.d/K80kdump    rc4.d/K87restorecond     rc4.d/K95firstboot +
-rc4.d/K10psacct      rc4.d/K50dnsmasq    rc4.d/K60nfs         rc4.d/K74nscd         rc4.d/K80sssd     rc4.d/K88nslcd +
-dans rc5.d : +
-rc5.d/K01certmonger  rc5.d/K10saslauthd   rc5.d/K50snmpd       rc5.d/K73ypbind   rc5.d/K80kdump           rc5.d/K87restorecond  rc5.d/K95firstboot +
-rc5.d/K01smartd      rc5.d/K15httpd       rc5.d/K50snmptrapd   rc5.d/K74nscd     rc5.d/K80sssd            rc5.d/K88nslcd +
-rc5.d/K02oddjobd     rc5.d/K50dnsmasq     rc5.d/K60nfs         rc5.d/K74ntpd     rc5.d/K84wpa_supplicant  rc5.d/K89rdisc +
-rc5.d/K10psacct      rc5.d/K50netconsole  rc5.d/K69rpcsvcgssd  rc5.d/K75ntpdate  rc5.d/K86cgred           rc5.d/K95cgconfig +
-</code>+
  
-<WRAP center round important> +  * **Type=notify**
-**Important** : Ici le principe est le même sauf que la lettre **K** indique au script **rc** que le script dans **/etc/rc.d/init.d** doit être lancé avec l'option **stop**. +    Cette directive indique que le service informera Systemd quand son démarrage a terminé, 
-</WRAP>+  * **ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY**
 +     Cette directive définit l'exécutable à lancer, 
 +  * **ExecReload=/bin/kill -HUP $MAINPID**
 +    * Cette directive indique la commande necéssaire pour redémarrer le service, 
 +  * **KillMode=process**, 
 +    * Cette directive indique comment les processus du service doivent être arrêtés. La valeur de **process** implique l'utilisation de SIGTERM suivi par SIGHUP, 
 +  * **Restart=on-failure**, 
 +    * Cette ligne indique que le service doit être re-démarré en cas d'arrêt de celui-ci
 +  * **RestartSec=42s**, 
 +    * Cette directive stipule le temps d'attente entre l'arrêt du service et le redémarrage par Systemd,
  
-===rc.local===+Dernièrement on note la présence de la ligne suivante dans la section **[Install]** :
  
-Le script rc.local est lancé dans les niveaux d'exécution **23, 4 et 5**. C'est dans ce script que **root** peut ajouter des commandes.+  * **WantedBy=multi-user.target**, 
 +    Cette directive indique la Cible dans laquelle le service doit être démarréLa présence de cette directive crée un lien symbolique dans le répertoire **/etc/systemd/system/multi-user.target.wants** qui pointe vers ce fichier.
  
-====La Commande chkconfig==== +Pour consulter **l'ensemble** des directives de configuration ainsi que leurs valeurs d'une Unité, il convient d'utiliser la commande **systemctl show**  en spécifiant l'Unité concernée :
- +
-Pour avoir une vue globale des services lancés par niveau d'exécution nous pouvons utiliser la commande **chkconfig**. Saisissez la commande suivante :+
  
 <code> <code>
-[root@centos5 rc.d]# chkconfig --list +[root@centos8 ~]# systemctl show sshd 
-NetworkManager 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +Type=notify 
-abrtd          0:arrêt 1:arrêt 2:arrêt 3:marche 4:arrêt 5:marche 6:arrêt +Restart=on-failure 
-acpid          0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +NotifyAccess=main 
-atd            0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +RestartUSec=42s 
-auditd          0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +TimeoutStartUSec=1min 30s 
-autofs          0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +TimeoutStopUSec=1min 30s 
-avahi-daemon    0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +RuntimeMaxUSec=infinity 
-bluetooth      0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +WatchdogUSec=
-certmonger      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +WatchdogTimestamp=Thu 2021-06-03 15:09:54 EDT 
-cgconfig        0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +WatchdogTimestampMonotonic=12502561 
-cgred          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +PermissionsStartOnly=no 
-cpuspeed        0:arrêt 1:marche 2:marche 3:marche 4:marche 5:marche 6:arrêt +RootDirectoryStartOnly=no 
-crond          0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +RemainAfterExit=no 
-cups            0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +GuessMainPID=yes 
-dnsmasq        0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +MainPID=902 
-firstboot      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +ControlPID=
-haldaemon      0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +FileDescriptorStoreMax=
-httpd          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +NFileDescriptorStore=
-ip6tables      0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +StatusErrno=
-iptables        0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +Result=success 
-irqbalance      0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +UID=[not set] 
-kdump          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +GID=[not set] 
-lvm2-monitor    0:arrêt 1:marche 2:marche 3:marche 4:marche 5:marche 6:arrêt +NRestarts=
-mdmonitor      0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +ExecMainStartTimestamp=Thu 2021-06-03 15:09:54 EDT 
-messagebus      0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +ExecMainStartTimestampMonotonic=12446178 
-microcode_ctl  0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +ExecMainExitTimestampMonotonic=
-netconsole      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +ExecMainPID=902 
-netfs          0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +ExecMainCode=
-network        0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +ExecMainStatus=
-nfs            0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +ExecStart={ path=/usr/sbin/sshd ; argv[]=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=; code=(null) ; status=0/} 
-nfslock        0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +ExecReload={ path=/bin/kill ; argv[]=/bin/kill -HUP $MAINPID ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=; code=(null) ; status=0/} 
-nscd            0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +Slice=system.slice 
-nslcd          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +ControlGroup=/system.slice/sshd.service 
-ntpd            0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +MemoryCurrent=6270976 
-ntpdate        0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +CPUUsageNSec=[not set] 
-oddjobd        0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +EffectiveCPUs= 
-portreserve    0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +EffectiveMemoryNodes= 
-postfix        0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +TasksCurrent=
-psacct          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +IPIngressBytes=18446744073709551615 
-rdisc          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +IPIngressPackets=18446744073709551615 
-restorecond    0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +IPEgressBytes=18446744073709551615 
-rpcbind        0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +IPEgressPackets=18446744073709551615 
-rpcgssd        0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +Delegate=no 
-rpcidmapd      0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt +CPUAccounting=no 
-rpcsvcgssd      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +CPUWeight=[not set] 
-rsyslog        0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +StartupCPUWeight=[not set] 
-saslauthd      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +CPUShares=[not set] 
-smartd          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +StartupCPUShares=[not set] 
-snmpd          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +CPUQuotaPerSecUSec=infinity 
-snmptrapd      0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +CPUQuotaPeriodUSec=infinity 
-sshd            0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +AllowedCPUs= 
-sssd            0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +AllowedMemoryNodes= 
-sysstat        0:arrêt 1:marche 2:marche 3:marche 4:marche 5:marche 6:arrêt +IOAccounting=no 
-udev-post      0:arrêt 1:marche 2:marche 3:marche 4:marche 5:marche 6:arrêt +IOWeight=[not set] 
-vboxadd        0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +StartupIOWeight=[not set] 
-vboxadd-service 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt +BlockIOAccounting=no 
-vboxadd-x11    0:arrêt 1:arrêt 2:arrêt 3:marche 4:arrêt 5:marche 6:arrêt +BlockIOWeight=[not set] 
-wpa_supplicant 0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt +lines 1-57
-ypbind          0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt+
 </code> </code>
  
-===Options de la commande=== +Pour consulter la liste des dépendances d'une Unité, il convient d'utiliser **systemctl list-dependancies** en spécifiant l'Unité concernée :
- +
-Les options de la commande **chkconfig** sont :+
  
 <code> <code>
-[root@centos5 ~]# chkconfig --help +[root@centos8 ~]# systemctl list-dependencies sshd.service 
-chkconfig version 1.3.47 Copyright (C) 1997-2000 Red Hat, Inc+sshd.service 
-Ce logiciel peut être librement distribué selon les termes de la licence publique GNU (GPL)+● ├─system.slice 
- +● ├─sshd-keygen.target 
-utilisation :   chkconfig [--list] [--type <type>] [nom] +● │ ├─sshd-keygen@ecdsa.service 
-              chkconfig --add <nom> +● │ ├─sshd-keygen@ed25519.service 
-              chkconfig --del <nom> +● │ └─sshd-keygen@rsa.service 
-         chkconfig --override <name> +● └─sysinit.target 
-         chkconfig [--level <niveaux>] [--type <type>] <nom> <on|off|reset|resetpriorities>+●   ├─dev-hugepages.mount 
 +●   ├─dev-mqueue.mount 
 +●   ├─dracut-shutdown.service 
 +●   ├─import-state.service 
 +●   ├─iscsi-onboot.service 
 +●   ├─kmod-static-nodes.service 
 +●   ├─ldconfig.service 
 +●   ├─loadmodules.service 
 +●   ├─lvm2-lvmpolld.socket 
 +●   ├─lvm2-monitor.service 
 +●   ├─nis-domainname.service 
 +●   ├─plymouth-read-write.service 
 +●   ├─plymouth-start.service 
 +●   ├─proc-sys-fs-binfmt_misc.automount 
 +●   ├─rngd.service 
 +●   ├─selinux-autorelabel-mark.service 
 +●   ├─sys-fs-fuse-connections.mount 
 +●   ├─sys-kernel-config.mount 
 +●   ├─sys-kernel-debug.mount 
 +●   ├─systemd-ask-password-console.path 
 +●   ├─systemd-binfmt.service 
 +●   ├─systemd-firstboot.service 
 +●   ├─systemd-hwdb-update.service 
 +●   ├─systemd-journal-catalog-update.service 
 +●   ├─systemd-journal-flush.service 
 +●   ├─systemd-journald.service 
 +●   ├─systemd-machine-id-commit.service 
 +●   ├─systemd-modules-load.service 
 +●   ├─systemd-random-seed.service 
 +●   ├─systemd-sysctl.service 
 +●   ├─systemd-sysusers.service 
 +●   ├─systemd-tmpfiles-setup-dev.service 
 +●   ├─systemd-tmpfiles-setup.service 
 +●   ├─systemd-udev-trigger.service 
 +●   ├─systemd-udevd.service 
 +●   ├─systemd-update-done.service 
 +●   ├─systemd-update-utmp.service 
 +●   ├─cryptsetup.target 
 +●   ├─local-fs.target 
 +●   │ ├─-.mount 
 +●   │ ├─boot.mount 
 +●   │ └─systemd-remount-fs.service 
 +●   └─swap.target 
 +●     └─dev-disk-by\x2duuid-c8bb3f47\x2dd67f\x2d4b21\x2db781\x2d766899dc83d4.swap
 </code> </code>
  
-Les options les plus importantes sont :+===2.2 - Surchargement des Fichiers de Configuration par Défaut===
  
-^ Option ^ Description ^ +Les fichiers de configuration par défaut peuvent aussi être surchargés par des fichiers dans d'autres répertoires :
-| - -add (nom) | Permet d'ajouter un service aux runlevels définis par le service lui-même | +
-| - -del (nom) | Permet de supprimer un service aux runlevels définis par le service lui-même | +
-| %%- -level [niveau] (nom) [on|off|reset]%%  | Permet d'activer, de désactiver ou de réinitialiser un service inscrit | +
- +
-=====Démarrer RHEL/CentOS 6 avec Upstart===== +
- +
-**Upstart** est un processus Init mieux adapté aux exigences des périphériques modernes de type plug'n'play. **Upstart** peux faire tout ce que fait le processus Init **SysVinit** mais supporte d'avantage d'**actions**. Par exemple, Upstart est capable de démarrer un service quand un périphérique spécifique est branché à chaud. Upstart est néanmoins compatible avec les scripts de démarrage du système **SysVinit** et ceux-ci fonctionnement normalement en attendant que les éditeurs de logiciels tierces portent les scripts SysVinit vers Upstart. +
- +
-====Inittab==== +
- +
-Sous Upstart, le fichier /etc/inittab ne permet **plus** de définir les services à démarrer en fonction du RUNLEVEL, seule la définition d'**initdefault** y est spécifiée :+
  
 <code> <code>
-[root@centos6 ~]# cat /etc/inittab +[root@centos8 ~]# pkg-config systemd --variable=systemdsystemunitpath 
-# inittab is only used by upstart for the default runlevel. +/etc/systemd/system:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:/usr/lib/systemd/system:/usr/lib/systemd/system:/lib/systemd/system
-+
-# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. +
-+
-# System initialization is started by /etc/init/rcS.conf +
-+
-# Individual runlevels are started by /etc/init/rc.conf +
-+
-# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf +
-+
-# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, +
-# with configuration in /etc/sysconfig/init. +
-+
-# For information on how to write upstart event handlers, or how +
-# upstart works, see init(5), init(8), and initctl(8). +
-+
-# Default runlevel. The runlevels used are: +
-#   0 - halt (Do NOT set initdefault to this) +
-#   1 - Single user mode +
-#   2 - Multiuser, without NFS (The same as 3, if you do not have networking) +
-#   3 - Full multiuser mode +
-#   4 - unused +
-#   5 - X11 +
-#   6 - reboot (Do NOT set initdefault to this) +
-#  +
-id:5:initdefault:+
 </code> </code>
  
 <code> <code>
-[root@centos6 ~]# cat /etc/inittab +[root@centos8 ~]# ls -l /etc/systemd/system 
-# inittab is only used by upstart for the default runlevel. +total 4 
-+drwxr-xr-x2 root root   31 May  8  2020 basic.target.wants 
-# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM+lrwxrwxrwx. 1 root root   41 May  8  2020 dbus-org.fedoraproject.FirewallD1.service -> /usr/lib/systemd/system/firewalld.service 
-+lrwxrwxrwx. 1 root root   44 Jun  3 14:02 dbus-org.freedesktop.Avahi.service -> /usr/lib/systemd/system/avahi-daemon.service 
-# System initialization is started by /etc/init/rcS.conf +lrwxrwxrwx. 1 root root   57 May  8  2020 dbus-org.freedesktop.nm-dispatcher.service -/usr/lib/systemd/system/NetworkManager-dispatcher.service 
-+lrwxrwxrwx. 1 root root   41 May  8  2020 dbus-org.freedesktop.timedate1.service -> /usr/lib/systemd/system/timedatex.service 
-# Individual runlevels are started by /etc/init/rc.conf +lrwxrwxrwx. 1 root root   37 May  8  2020 default.target -> /lib/systemd/system/multi-user.target 
-+drwxr-xr-x. 2 root root   32 May  8  2020 getty.target.wants 
-# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf +drwxr-xr-x. 2 root root 4096 Jun  3 14:02 multi-user.target.wants 
-+drwxr-xr-x. 2 root root   48 May   2020 network-online.target.wants 
-# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, +drwxr-xr-x2 root root   33 Apr 19 12:07 nfs-blkmap.service.requires 
-# with configuration in /etc/sysconfig/init+drwxr-xr-x. 2 root root   33 Apr 19 12:07 nfs-idmapd.service.requires 
-# +drwxr-xr-x. 2 root root   33 Apr 19 12:07 nfs-mountd.service.requires 
-# For information on how to write upstart event handlers, or how +drwxr-xr-x. root root   33 Apr 19 12:07 nfs-server.service.requires 
-# upstart works, see init(5), init(8), and initctl(8)+drwxr-xr-x. 2 root root   26 Jun  14:02 printer.target.wants 
-+drwxr-xr-x. 2 root root   52 Apr 19 12:07 remote-fs.target.wants 
-# Default runlevelThe runlevels used are+drwxr-xr-x. 2 root root   33 Apr 19 12:07 rpc-gssd.service.requires 
-  halt (Do NOT set initdefault to this) +drwxr-xr-x. 2 root root   33 Apr 19 12:07 rpc-statd-notify.service.requires 
-  Single user mode +drwxr-xr-x. 2 root root   33 Apr 19 12:07 rpc-statd.service.requires 
-#   2 - Multiuser, without NFS (The same as 3, if you do not have networking) +drwxr-xr-x. 2 root root  260 Jun  3 14:02 sockets.target.wants 
-  3 - Full multiuser mode +drwxr-xr-x. 2 root root  235 Apr 19 12:07 sysinit.target.wants 
-  unused +lrwxrwxrwx. 1 root root   39 May  8  2020 syslog.service -> /usr/lib/systemd/system/rsyslog.service 
-  X11 +lrwxrwxrwx. 1 root root    9 May 11  2019 systemd-timedated.service -> /dev/null 
-  reboot (Do NOT set initdefault to this) +drwxr-xr-x. 2 root root   34 May  8  2020 timers.target.wants
- +
-id:5:initdefault:+
 </code> </code>
  
-Sous Upstart, les définitions des autres valeurs habituellement incluses dans /etc/inittab se trouvent dans des fichiers de configuration supplémentaires qui se trouvent dans le répertoire **/etc/init/** :+====LAB #3 - La Commande systemd-analyze==== 
 + 
 +Pour avoir une évaluation du temps de démarrage, il convient d'utiliser la commande suivante :
  
 <code> <code>
-[root@centos6 ~]# ls -l /etc/init +[root@centos8 ~]# systemd-analyze 
-total 68 +Startup finished in 1.665s (kernel) + 6.977s (initrd) + 8.458s (userspace) = 17.101s 
--rw-r--r--. root root  412 22 juil 2014 control-alt-delete.conf +multi-user.target reached after 5.528s in userspace
--rw-r--r--1 root root  130 12 mars   2014 init-system-dbus.conf +
--rw-r--r--. 1 root root  463 22 juil.  2014 kexec-disable.conf +
--rw-r--r--. 1 root root  560 22 juil.  2014 plymouth-shutdown.conf +
--rw-r--r--. 1 root root  357 22 juil.  2014 prefdm.conf +
--rw-r--r--. 1 root root  505 22 juil.  2014 quit-plymouth.conf +
--rw-r--r--. 1 root root  417 22 juil.  2014 rc.conf +
--rw-r--r--. 1 root root 1046 22 juil.  2014 rcS.conf +
--rw-r--r--. 1 root root  430 22 juil.  2014 rcS-emergency.conf +
--rw-r--r--. 1 root root  725 22 juil.  2014 rcS-sulogin.conf +
--rw-r--r--. 1 root root 2915 23 nov.   2013 readahead-collector.conf +
--rw-r--r--. 1 root root 1559 23 nov.   2013 readahead.conf +
--rw-r--r--. 1 root root  726 23 nov.   2013 readahead-disable-services.conf +
--rw-r--r--. 1 root root 1302 22 juil.  2014 serial.conf +
--rw-r--r--. 1 root root  791 22 juil.  2014 splash-manager.conf +
--rw-r--r--. 1 root root  473 22 juil.  2014 start-ttys.conf +
--rw-r--r--. 1 root root  335 22 juil 2014 tty.conf+
 </code> </code>
  
-===Initialisation du Système=== +L'option **blame** de la commande systemd-analyze permet de voir le temps de démarrage de chaque Unité afin de pourvoir se concentrer sur les plus lentes :
- +
-L'initialisation du système est configurée dans le fichier **/etc/init/rcS.conf** :+
  
 <code> <code>
-[root@centos6 init]# cat /etc/init/rcS.conf +[root@centos8 ~]# systemd-analyze blame 
-# rcS runlevel compatibility +          4.080s dracut-initqueue.service 
-# +          3.257s kdump.service 
-# This task runs the old sysv-rc startup scripts+          1.727s tuned.service 
- +          1.415s initrd-switch-root.service 
-start on startup +          1.393s NetworkManager-wait-online.service 
- +          1.116s systemd-machined.service 
-stop on runlevel +          1.111s dracut-cmdline.service 
- +           850ms sssd.service 
-task +           791ms vdo.service 
- +           713ms firewalld.service 
-# Note: there can be no previous runlevel here, if we have one it's bad +           622ms lvm2-monitor.service 
-# information (we enter rc1 not rcS for maintenance) Run /etc/rc.d/rc +           605ms polkit.service 
-# without information so that it defaults to previous=N runlevel=S+           508ms chronyd.service 
-console output +           434ms avahi-daemon.service 
-exec /etc/rc.d/rc.sysinit +           426ms systemd-logind.service 
-post-stop script +           417ms netcf-transaction.service 
- if [ "$UPSTART_EVENTS" = "startup" ]; then +           410ms dracut-pre-udev.service 
- -f /etc/inittab ] && runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab) +           295ms libvirtd.service 
- -z "$runlevel" ] && runlevel="3" +           275ms dnf-makecache.service 
- for t in $(cat /proc/cmdline); do +           243ms systemd-udevd.service 
- case $t in +           221ms systemd-journald.service 
- -s|single|S|s) runlevel="S" ;; +           196ms systemd-tmpfiles-setup.service 
- [1-9])       runlevel="$t" ;; +           151ms dracut-pre-pivot.service 
- esac +           139ms sysroot.mount 
- done +           139ms systemd-update-utmp-runlevel.service 
- exec telinit $runlevel +           122ms systemd-vconsole-setup.service 
- fi +           110ms lvm2-pvscan@8:25.service 
-end script+            98ms systemd-udev-trigger.service 
 +            82ms gssproxy.service 
 +            81ms cups.service 
 +            79ms initrd-parse-etc.service 
 +            77ms NetworkManager.service 
 +            72ms lvm2-pvscan@8:23.service 
 +            69ms systemd-user-sessions.service 
 +            68ms lvm2-pvscan@8:22.service 
 +            67ms unbound-anchor.service 
 +            66ms rsyslog.service 
 +            62ms boot.mount 
 +            56ms sshd.service 
 +            54ms smartd.service 
 +            54ms systemd-fsck@dev-disk-by\x2duuid-2ae4c035\x2d9244\x2d458c\x2d82c5\x2da49ae169cdb6.service 
 +            53ms user@1000.service 
 +            52ms auditd.service 
 +            51ms plymouth-quit.service 
 +            49ms rngd-wake-threshold.service 
 +            46ms import-state.service 
 +            46ms systemd-tmpfiles-setup-dev.service 
 +            43ms ksmtuned.service 
 +            42ms plymouth-quit-wait.service 
 +            42ms var-lib-nfs-rpc_pipefs.mount 
 +            42ms rpc-statd-notify.service 
 +            38ms plymouth-switch-root.service 
 +            37ms systemd-remount-fs.service 
 +            37ms plymouth-start.service 
 +            33ms dev-disk-by\x2duuid-c8bb3f47\x2dd67f\x2d4b21\x2db781\x2d766899dc83d4.swap 
 +            33ms systemd-tmpfiles-clean.service 
 +            31ms dev-hugepages.mount 
 +lines 1-57
 </code> </code>
  
-===Runlevels=== +L'option **critical-chain** de la commande **systemd-analyze** permet de voir l'enchaînement des événements qui amènent au chargement de l'Unité qui est passée en argument :
- +
-La gestion des Runlevels est configurée dans le fichier **/etc/init/rc.conf** :+
  
 <code> <code>
-[root@centos6 init]# cat /etc/init/rc.conf +[root@centos8 ~]# systemd-analyze critical-chain sshd.service 
-# rc System V runlevel compatibility +The time after the unit is active or started is printed after the "@" character
-+The time the unit takes to start is printed after the "+" character.
-# This task runs the old sysv-rc runlevel scripts It +
-is usually started by the telinit compatibility wrapper+
- +
-start on runlevel [0123456] +
- +
-stop on runlevel [!$RUNLEVEL]+
  
-task +sshd.service +56ms 
- +└─network.target @3.799s 
-export RUNLEVEL +  └─NetworkManager.service @3.719s +77ms 
-console output +    └─network-pre.target @3.718s 
-exec /etc/rc.d/rc $RUNLEVEL+      └─firewalld.service @3.004s +713ms 
 +        └─polkit.service @2.397s +605ms 
 +          └─basic.target @2.392s 
 +            └─sockets.target @2.392s 
 +              └─sssd-kcm.socket @2.391s 
 +                └─sysinit.target @2.379s 
 +                  └─systemd-update-utmp.service @2.370s +8ms 
 +                    └─auditd.service @2.317s +52ms 
 +                      └─systemd-tmpfiles-setup.service @2.118s +196ms 
 +                        └─import-state.service @2.070s +46ms 
 +                          └─local-fs.target @2.069s 
 +                            └─boot.mount @2.006s +62ms 
 +                              └─systemd-fsck@dev-disk-by\x2duuid-2ae4c035\x2d9244\x2d458c\x2d82c5\x2da49ae169cdb6.service @1.943s +54ms 
 +                                └─local-fs-pre.target @1.942s 
 +                                  └─lvm2-monitor.service @1.319s +622ms 
 +                                    └─dm-event.socket @1.317s 
 +                                      └─-.mount 
 +                                        └─system.slice 
 +                                          └─-.slice
 </code> </code>
  
-===[CTL]-[ALT]-[DEL]=== +Les options de la commande **systemd-analyze** sont :
- +
-Le comportement associé avec la combinaison de touches [CTL]-[ALT]-[DEL] est configuré dans le fichier **/etc/init/control-alt-delete.conf** :+
  
 <code> <code>
-[root@centos6 init]# cat /etc/init/control-alt-delete.conf +[root@centos7 ~]# systemd-analyze --help 
-# control-alt-delete - emergency keypress handling +systemd-analyze [OPTIONS...] {COMMAND} ...
-+
-# This task is run whenever the Control-Alt-Delete key combination is +
-# pressed Usually used to shut down the machine.+
  
-start on control-alt-delete+Process systemd profiling information
  
-exec /sbin/shutdown -r now "Control-Alt-Delete pressed"+  ---help           Show this help 
 +     --version        Show package version 
 +     --system         Connect to system manager 
 +     --user           Connect to user service manager 
 +     --order          When generating a dependency graph, show only order 
 +     --require        When generating a dependency graph, show only requirement 
 +     --from-pattern=GLOB, --to-pattern=GLOB 
 +                      When generating a dependency graph, filter only origins 
 +                      or destinations, respectively 
 +     --fuzz=TIMESPAN  When printing the tree of the critical chain, print also 
 +                      services, which finished TIMESPAN earlier, than the 
 +                      latest in the branch. The unit of TIMESPAN is seconds 
 +                      unless specified with a different unit, i.e. 50ms 
 +     --no-pager       Do not pipe output into a pager 
 + 
 +Commands: 
 +  time                Print time spent in the kernel before reaching userspace 
 +  blame               Print list of running units ordered by time to init 
 +  critical-chain      Print a tree of the time critical chain of units 
 +  plot                Output SVG graphic showing service initialization 
 +  dot                 Output dependency graph in dot(1) format 
 +  set-log-level LEVEL Set logging threshold for systemd 
 +  dump                Output state serialization of service manager
 </code> </code>
  
-===mingetty===+====LAB #4 - Les Cibles Systemd====
  
-Le génération des terminaux getty est spécifiée dans les fichiers **/etc/init/tty.conf** et **/etc/init/serial.conf** :+Chaque Cible est décrite par un fichier de configuration :
  
 <code> <code>
-[root@centos6 init]# cat /etc/init/tty.conf +[root@centos8 ~]# cat /usr/lib/systemd/system/graphical.target 
-tty getty+ SPDX-License-Identifier: LGPL-2.1+
 # #
-# This service maintains a getty on the sepcified device. + This file is part of systemd.
- +
-stop on runlevel [016] +
- +
-respawn +
-instance $TTY +
-exec /sbin/mingetty $TTY +
-[root@centos rc.d]# cat /etc/init/serial.conf +
-# Automatically start a configured serial console +
-+
-# How this works: +
-+
-# On boot, a udev helper examines /dev/console. If a serial console is the +
-# primary console (last console on the commandline in grub),  the event +
-# 'fedora.serial-console-available <port name> <speed>' is emitted, which +
-# triggers this script. It waits for the runlevel to finish, ensures +
-# the proper port is in /etc/securetty, and starts the getty.+
 # #
-If your serial console is not the primary console, or you want a getty + systemd is free software; you can redistribute it and/or modify it 
-on serial even if it's not the console, create your own event by copying + under the terms of the GNU Lesser General Public License as published by 
-/etc/init/tty.conf, and changing the getty line in that file.+ the Free Software Foundation; either version 2.1 of the License, or 
 +#  (at your option) any later version.
  
-start on fedora.serial-console-available DEV=* and stopped rc RUNLEVEL=[2345+[Unit
-stop on runlevel [016] +Description=Graphical Interface 
- +Documentation=man:systemd.special(7) 
-instance $DEV +Requires=multi-user.target 
-respawn +Wants=display-manager.service 
-pre-start exec /sbin/securetty $DEV +Conflicts=rescue.service rescue.target 
-exec /sbin/agetty /dev/$DEV $SPEED vt100-nav+After=multi-user.target rescue.service rescue.target display-manager.service 
 +AllowIsolate=yes
 </code> </code>
  
-La configuration des terminaux fait partie du fichier **/etc/sysconfig/init** +Dans ce fichier on peut noter la présence des lignes suivantes :
  
-<code> +  * **Requires=multi-user.target**, 
-[root@centos6 init]# cat /etc/sysconfig/init +     * Cette ligne indique que le **graphical.target** ne peut pas être atteint si le **multi-user.target** n'pas été atteint au préalable, 
-# color => new RH6.0 bootup +  * **After=multi-user.target rescue.service rescue.target display-manager.service**, 
-# verbose => old-style bootup +    * Cette ligne indique le **multi-user.target** et **rescue.target** doivent d'abord être atteints et que les services **rescue.service** et **display-manager.service** doivent d'abord être démarrés, 
-# anything else => new style bootup without ANSI colors or positioning +  * **Conflicts=rescue.service rescue.target**, 
-BOOTUP=color +    * Cette ligne indique la Cible et le service en conflits avec le **graphical.target**, 
-# column to start " OK  ]" label in  +  * **Wants=display-manager.service**, 
-RES_COL=60 +    * Cette ligne indique quel service doit être démarré.
-# terminal sequence to move to that columnYou could change this +
-# to something like "tput hpa ${RES_COL}" if your terminal supports it +
-MOVE_TO_COL="echo -en \\033[${RES_COL}G" +
-# terminal sequence to set color to a 'success' color (currently: green) +
-SETCOLOR_SUCCESS="echo -en \\033[0;32m" +
-# terminal sequence to set color to 'failure' color (currently: red) +
-SETCOLOR_FAILURE="echo -en \\033[0;31m" +
-# terminal sequence to set color to a 'warning' color (currently: yellow) +
-SETCOLOR_WARNING="echo -en \\033[0;33m" +
-# terminal sequence to reset to the default color+
-SETCOLOR_NORMAL="echo -en \\033[0;39m" +
-# Set to anything other than 'no' to allow hotkey interactive startup..+
-PROMPT=yes +
-# Set to 'yes' to allow probing for devices with swap signatures +
-AUTOSWAP=no +
-# What ttys should gettys be started on? +
-ACTIVE_CONSOLES=/dev/tty[1-6] +
-# Set to '/sbin/sulogin' to prompt for password on single-user mode +
-# Set to '/sbin/sushell' otherwise +
-SINGLE=/sbin/sushell +
-</code>+
  
-====Gestion des Services====+===4.1 - Contrôler les dépendances d'une Cible===
  
-Sous Upstart, les services sont appelés des **jobs**. Les scripts de démarrage de jobs au format Upstart sont placés dans le répertoire **/etc/init/** et ont une forme **nom.conf** où //nom// est le nom du job :+Les dépendances d'une Cible peuvent être consultées en utilisant la commande **systemctl list-dependencies** :
  
 <code> <code>
-[root@centos6 ~]# ls /etc/init +[root@centos8 ~]# systemctl list-dependencies multi-user.target 
-control-alt-delete.conf  rcS-sulogin.conf +multi-user.target 
-init-system-dbus.conf    readahead-collector.conf +● ├─atd.service 
-kexec-disable.conf       readahead.conf +● ├─auditd.service 
-plymouth-shutdown.conf   readahead-disable-services.conf +● ├─avahi-daemon.service 
-prefdm.conf              serial.conf +● ├─chronyd.service 
-quit-plymouth.conf       splash-manager.conf +● ├─crond.service 
-rc.conf                  start-ttys.conf +● ├─cups.path 
-rcS.conf                 tty.conf +● ├─cups.service 
-rcS-emergency.conf+● ├─dbus.service 
 +● ├─dnf-makecache.timer 
 +● ├─firewalld.service 
 +● ├─irqbalance.service 
 +● ├─kdump.service 
 +● ├─ksm.service 
 +● ├─ksmtuned.service 
 +● ├─libstoragemgmt.service 
 +● ├─libvirtd.service 
 +● ├─mcelog.service 
 +● ├─mdmonitor.service 
 +● ├─netcf-transaction.service 
 +● ├─NetworkManager.service 
 +● ├─plymouth-quit-wait.service 
 +● ├─plymouth-quit.service 
 +● ├─rpcbind.service 
 +● ├─rsyslog.service 
 +● ├─smartd.service 
 +● ├─sshd.service 
 +● ├─sssd.service 
 +● ├─systemd-ask-password-wall.path 
 +● ├─systemd-logind.service 
 +● ├─systemd-update-utmp-runlevel.service 
 +● ├─systemd-user-sessions.service 
 +● ├─tuned.service 
 +● ├─vdo.service 
 +● ├─basic.target 
 +● │ ├─-.mount 
 +● │ ├─microcode.service 
 +● │ ├─paths.target 
 +● │ ├─slices.target 
 +● │ │ ├─-.slice 
 +● │ │ └─system.slice 
 +● │ ├─sockets.target 
 +● │ │ ├─avahi-daemon.socket 
 +● │ │ ├─cups.socket 
 +● │ │ ├─dbus.socket 
 +● │ │ ├─dm-event.socket 
 +● │ │ ├─iscsid.socket 
 +● │ │ ├─iscsiuio.socket 
 +● │ │ ├─libvirtd-ro.socket 
 +● │ │ ├─libvirtd.socket 
 +● │ │ ├─rpcbind.socket 
 +● │ │ ├─sssd-kcm.socket 
 +● │ │ ├─systemd-coredump.socket 
 +● │ │ ├─systemd-initctl.socket 
 +● │ │ ├─systemd-journald-dev-log.socket 
 +● │ │ ├─systemd-journald.socket 
 +● │ │ ├─systemd-udevd-control.socket 
 +lines 1-57
 </code> </code>
  
-Pour créer un fichier job, il convient de respecter un certain format. Par exemple créez le fichier **/etc/init/testjob.conf** :+Les points noirs au début de chaque ligne dans la sortie ci-dessus peuvent être de trois couleurs différentes :
  
-<file txt testjob.conf> +  * **Vert** implique que le service, la cible ou l'unité est activé et démarré.  
-description "Un job pour tester Upstart" +  * **Blanc** implique le service, la cible ou l'unité est inactif
-author "Linux E-Learning" +  * **Rouge** implique que le service, la cible ou l'unité n'a pas démarré à cause d'une erreur fatale.
-start on runlevel [2345] +
-exec echo Le job test a été lancé le `date` >> /var/log/testjob.log +
-</file>+
  
-===La Commande initctl=== +Pour visualiser les Unités en état d'erreur fatale, utilisez la commande **systemctl --failed** :
- +
-Pour obtenir une liste de tous les jobs et leurs états, il convient d'utiliser la commande initctl. Vérifiez donc que le job testjob se trouve dans la sortie de cette commande :+
  
 <code> <code>
-[root@centos6 ~]# initctl list +[root@centos8 ~]# systemctl --failed 
-rc stop/waiting +0 loaded units listed. Pass --all to see loaded but inactive unitstoo. 
-tty (/dev/tty3) start/running, process 1833 +To show all installed unit files use 'systemctl list-unit-files'.
-tty (/dev/tty2) start/running, process 1828 +
-tty (/dev/tty6) start/running, process 1854 +
-tty (/dev/tty5) start/running, process 1845 +
-tty (/dev/tty4) start/running, process 1838 +
-plymouth-shutdown stop/waiting +
-control-alt-delete stop/waiting +
-rcS-emergency stop/waiting +
-readahead-collector stop/waiting +
-kexec-disable stop/waiting +
-quit-plymouth stop/waiting +
-testjob stop/waiting +
-rcS stop/waiting +
-prefdm start/runningprocess 1814 +
-init-system-dbus stop/waiting +
-readahead stop/waiting +
-splash-manager stop/waiting +
-start-ttys stop/waiting +
-readahead-disable-services stop/waiting +
-rcS-sulogin stop/waiting +
-serial stop/waiting+
 </code> </code>
  
-==Option de la Commande initctl== +Les dépendances sont créés sous la forme de liens symboliques dans les répertoires **/etc/systemd/system/multi-user.target.wants** et **/usr/lib/systemd/system/multi-user.target.wants** :
- +
-Les options de la commande **initctl** sont :+
  
 <code> <code>
-[root@centos6 ~]# initctl --help +[root@centos8 ~]# ls -l /etc/systemd/system/multi-user.target.wants 
-Usage: initctl [OPTION]... COMMAND [OPTION]... [ARG]... +total 0 
- +lrwxrwxrwx1 root root 35 May  8  2020 atd.service -> /usr/lib/systemd/system/atd.service 
-Options+lrwxrwxrwx1 root root 38 May  8  2020 auditd.service -> /usr/lib/systemd/system/auditd.service 
-      --system                use D-Bus system bus to connect to init daemon +lrwxrwxrwx1 root root 44 Jun  3 14:02 avahi-daemon.service -> /usr/lib/systemd/system/avahi-daemon.service 
-      --dest=NAME             destination well-known name on system bus +lrwxrwxrwx. 1 root root 39 May  8  2020 chronyd.service -> /usr/lib/systemd/system/chronyd.service 
-  -q, --quiet                 reduce output to errors only +lrwxrwxrwx. 1 root root 37 May  8  2020 crond.service -> /usr/lib/systemd/system/crond.service 
-  -v, --verbose               increase output to include informational messages +lrwxrwxrwx. 1 root root 33 Jun  3 14:02 cups.path -> /usr/lib/systemd/system/cups.path 
-      --help                  display this help and exit +lrwxrwxrwx. 1 root root 36 Jun  3 14:02 cups.service -> /usr/lib/systemd/system/cups.service 
-      --version               output version information and exit +lrwxrwxrwx. 1 root root 43 May  8  2020 dnf-makecache.timer -> /usr/lib/systemd/system/dnf-makecache.timer 
- +lrwxrwxrwx. 1 root root 41 May  8  2020 firewalld.service -> /usr/lib/systemd/system/firewalld.service 
-For a list of commands, try `initctl help'+lrwxrwxrwx. 1 root root 42 May  8  2020 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service 
- +lrwxrwxrwx. 1 root root 37 May  8  2020 kdump.service -> /usr/lib/systemd/system/kdump.service 
-Report bugs at <https://launchpad.net/upstart/+bugs>+lrwxrwxrwx. 1 root root 35 Apr 19 12:07 ksm.service -> /usr/lib/systemd/system/ksm.service 
 +lrwxrwxrwx. 1 root root 40 Apr 19 12:07 ksmtuned.service -> /usr/lib/systemd/system/ksmtuned.service 
 +lrwxrwxrwx. 1 root root 46 May  8  2020 libstoragemgmt.service -> /usr/lib/systemd/system/libstoragemgmt.service 
 +lrwxrwxrwx. 1 root root 40 Apr 19 12:07 libvirtd.service -> /usr/lib/systemd/system/libvirtd.service 
 +lrwxrwxrwx. 1 root root 38 May  8  2020 mcelog.service -> /usr/lib/systemd/system/mcelog.service 
 +lrwxrwxrwx. 1 root root 41 May  8  2020 mdmonitor.service -> /usr/lib/systemd/system/mdmonitor.service 
 +lrwxrwxrwx. 1 root root 49 Apr 19 12:07 netcf-transaction.service -> /usr/lib/systemd/system/netcf-transaction.service 
 +lrwxrwxrwx. 1 root root 46 May  8  2020 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service 
 +lrwxrwxrwx. 1 root root 41 Apr 19 12:07 nfs-client.target -> /usr/lib/systemd/system/nfs-client.target 
 +lrwxrwxrwx. 1 root root 40 May  8  2020 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target 
 +lrwxrwxrwx. 1 root root 39 Apr 19 12:07 rpcbind.service -> /usr/lib/systemd/system/rpcbind.service 
 +lrwxrwxrwx1 root root 39 May  8  2020 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service 
 +lrwxrwxrwx. 1 root root 38 May  8  2020 smartd.service -> /usr/lib/systemd/system/smartd.service 
 +lrwxrwxrwx. 1 root root 36 May  8  2020 sshd.service -> /usr/lib/systemd/system/sshd.service 
 +lrwxrwxrwx. 1 root root 36 May  8  2020 sssd.service -> /usr/lib/systemd/system/sssd.service 
 +lrwxrwxrwx. 1 root root 37 May  8  2020 tuned.service -/usr/lib/systemd/system/tuned.service 
 +lrwxrwxrwx. 1 root root 35 May  8  2020 vdo.service -> /usr/lib/systemd/system/vdo.service
  
 +[root@centos8 ~]# ls -l /usr/lib/systemd/system/multi-user.target.wants
 +total 0
 +lrwxrwxrwx. 1 root root 15 Apr  7 12:08 dbus.service -> ../dbus.service
 +lrwxrwxrwx. 1 root root 15 Apr  7 16:55 getty.target -> ../getty.target
 +lrwxrwxrwx. 1 root root 24 Oct  6  2020 plymouth-quit.service -> ../plymouth-quit.service
 +lrwxrwxrwx. 1 root root 29 Oct  6  2020 plymouth-quit-wait.service -> ../plymouth-quit-wait.service
 +lrwxrwxrwx. 1 root root 33 Apr  7 16:55 systemd-ask-password-wall.path -> ../systemd-ask-password-wall.path
 +lrwxrwxrwx. 1 root root 25 Apr  7 16:55 systemd-logind.service -> ../systemd-logind.service
 +lrwxrwxrwx. 1 root root 39 Apr  7 16:55 systemd-update-utmp-runlevel.service -> ../systemd-update-utmp-runlevel.service
 +lrwxrwxrwx. 1 root root 32 Apr  7 16:55 systemd-user-sessions.service -> ../systemd-user-sessions.service
 </code> </code>
  
-===Jobs===+===4.2 - La Cible par Défaut===
  
-Il existe trois types de jobs sous Upstart :+==Consulter la Cible par Défaut==
  
-  * **task*+Pour consulter la cible par défaut, il convient d'utiliser la commande **systemctl get-default** :
-  * **service** +
-    * un service job peut fonctionner en arrière plan +
-  * **abstract** +
-    * un abstract job est un service qui fonctionnent jusqu'à ce que l'administrateur l'arrête+
  
-===Événements===+<code> 
 +[root@centos8 ~]# systemctl get-default 
 +multi-user.target 
 +</code>
  
-Un événement ou //event// en anglais est un signal envoyé vers un job pour déclencher une actionPar exemple :+La Cible par défaut est représentée par le lien symbolique **/etc/systemd/system/default.target** :
  
-  * **starting** +<code> 
-  * **started** +[root@centos8 ~]# ls -l /etc/systemd/system/default.target 
-  * **stopping** +lrwxrwxrwx. 1 root root 37 May  8  2020 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target 
-  * **stopped**+</code>
  
-===Etats===+==Modifier la Cible par Défaut==
  
-L'objectif d'un job est de démarrer ou de s'arrêter. Entre ces deux objectifs se trouvent des états intermédiaires :+Pour modifier la Cible par défaut avec une prise en compte lors du **prochain** démarrage, il convient d'utiliser la commande **systemctl set-default** :
  
-  * **waiting** - l'état initial d'un job +<code> 
-  * **starting** le job est sur le point de démarrer +[root@centos8 ~]# systemctl set-default graphical.target 
-  * **pre-start** - la section pre-start est chargée +Removed /etc/systemd/system/default.target. 
-  * **spawned** - une section script est sur le point de démarrer +Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target. 
-  * **post-start** les opérations détaillées dans la section post-start ont lieu +[root@centos8 ~]# ls -l /etc/systemd/system/default.target 
-  * **running** le job est opérationnel +lrwxrwxrwx. 1 root root 40 Jun  6 08:11 /etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target 
-  * **pre-stop** la section pre-stop est chargée +[root@centos8 ~]# systemctl set-default multi-user.target 
-  * **stopping** le job est en cours d'arrêt +Removed /etc/systemd/system/default.target. 
-  * **killed** le job est arrêté +Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target. 
-  * **post-stop** les opérations détaillées dans la section post-stop ont lieu +[root@centos8 ~]# ls -l /etc/systemd/system/default.target 
- +lrwxrwxrwx. 1 root root 41 Jun  6 08:11 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target 
-===Démarrer et Arrêter les Jobs=== +</code>
- +
-Compte tenu de la compatibilité avec le système SysVinit, les commandes traditionnellement utilisées avec ce dernier sont compris par Upstart. Ceci étant Upstart fournit ses propres commandes pour le contrôle des jobs.+
  
-==La Commande status==+==Modifier la Cible en Cours==
  
-Pour voir le status d'un job spécifique, utilisez la commande suivante :+Il est possible de modifier la cible actuellement en cours en utilisant la commande **systemctl isolate** :
  
 <code> <code>
-[root@centos6 ~]# status testjob +[root@centos8 ~]# systemctl isolate rescue 
-testjob stop/waiting+[root@centos8 ~]# systemctl list-units --type target | egrep "eme|res|gra|mul" | head -1 
 +rescue.target       loaded active active Rescue Mode              
 +[root@centos8 ~]# runlevel 
 +3 1 
 +[root@centos8 ~]# who -r 
 +         run-level 1  2021-06-15 04:22                   last=3
 </code> </code>
- 
-==Options de la Commande status== 
- 
-Les options de la commande **status** sont : 
  
 <code> <code>
-[root@centos6 ~]# status --help +[root@centos8 ~]# systemctl isolate multi-user 
-Usage: status [OPTION]... JOB [KEY=VALUE]... +[root@centos8 ~]# systemctl list-units --type target | egrep "eme|res|gra|mul" | head -1 
-Query status of job.+multi-user.target      loaded active active Multi-User System           
 +[root@centos8 ~]# runlevel 
 +1 3 
 +[root@centos8 ~]# who -r 
 +         run-level 3  2021-06-15 04:24                   last=1 
 +</code>
  
-Options: +====LAB #5 Gestion des Services====
-      --system                use D-Bus system bus to connect to init daemon +
-      --dest=NAME             destination well-known name on system bus +
-  -q, --quiet                 reduce output to errors only +
-  -v, --verbose               increase output to include informational messages +
-      --help                  display this help and exit +
-      --version               output version information and exit+
  
-JOB is the name of the job that is to be queried, this may be followed by zero +===5.1 - Gestion des Instances Uniques===
-or more environment variables to distguish between job instances.+
  
 +Commencez par installer le paquet **httpd** :
  
-Report bugs at <https://launchpad.net/upstart/+bugs>+<code> 
 +[root@centos8 ~]# dnf install httpd
 </code> </code>
  
-==La Commande start==+Pour obtenir le détail sur un service donné, il convient d'utiliser la commande **systemctl status** :
  
 <code> <code>
-[root@centos6 ~]# start testjob +[root@centos8 ~]# systemctl status httpd.service 
-testjob start/running, process 2981 +● httpd.service - The Apache HTTP Server 
-[root@centos ~]# cat /var/log/testjob.log +   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) 
-Le job test a été lancé le Tue Jun 30 15:26:10 CEST 2015+   Activeinactive (dead) 
 +     Docsman:httpd.service(8)
 </code> </code>
  
-==Options de la Commande start==+Dans le cas du service httpd ci-dessus, on peut constater que le statut est **disabled**. Le statut peut être une de 2 valeurs :
  
-Les options de la commande **start** sont :+  * **disabled** - le service ne démarrera pas lors du prochain démarrage du système. 
 +  * **enabled** - le service démarrera lors du prochain démarrage du système. 
 + 
 +Il est possible de vérifier le statut en utilisant le commande **systemctl is-enabled** :
  
 <code> <code>
-[root@centos6 ~]# start --help +[root@centos8 ~]# systemctl is-enabled httpd.service 
-Usage: start [OPTION]... JOB [KEY=VALUE]... +disabled
-Start job. +
- +
-Options: +
-  -n, --no-wait               do not wait for job to start before exiting +
-      --system                use D-Bus system bus to connect to init daemon +
-      --dest=NAME             destination well-known name on system bus +
-  -q, --quiet                 reduce output to errors only +
-  -v, --verbose               increase output to include informational messages +
-      --help                  display this help and exit +
-      --version               output version information and exit +
- +
-JOB is the name of the job that is to be started, this may be followed by zero +
-or more environment variables to be defined in the new job. +
- +
-The environment may also serve to distinguish between job instances, and thus +
-decide whether a new instance will be started or an error returned if an +
-existing instance is already running. +
- +
-Report bugs at <https://launchpad.net/upstart/+bugs> +
 </code> </code>
  
-==La Commande stop== +Pour rendre le statut **enabled**, il convient d'utiliser la commande **systemctl enable** :
- +
-Pour arrêter un job, utilisez la commande **stop**+
- +
-==Options de la Commande stop== +
- +
-Les options de la commande **stop** sont :+
  
 <code> <code>
-[root@centos6 ~]# stop --help +[root@centos8 ~]# systemctl enable httpd.service 
-Usage: stop [OPTION]... JOB [KEY=VALUE]... +Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
-Stop job. +
- +
-Options: +
-  -n, --no-wait               do not wait for job to stop before exiting +
-      --system                use D-Bus system bus to connect to init daemon +
-      --dest=NAME             destination well-known name on system bus +
-  -q, --quiet                 reduce output to errors only +
-  -v, --verbose               increase output to include informational messages +
-      --help                  display this help and exit +
-      --version               output version information and exit +
- +
-JOB is the name of the job that is to be stopped, this may be followed by zero +
-or more environment variables to be passed to the job's pre-stop and post-stop +
-processes. +
- +
-The environment also serves to distinguish between job instances, and thus +
-decide which of multiple instances will be stopped.+
  
-Report bugs at <https://launchpad.net/upstart/+bugs>+[root@centos8 ~]# systemctl is-enabled httpd.service 
 +enabled
  
 +[root@centos8 ~]# systemctl status httpd.service
 +● httpd.service - The Apache HTTP Server
 +   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
 +   Active: inactive (dead)
 +     Docs: man:httpd.service(8)
 </code> </code>
  
-==La Commande restart==+Dans le cas du service httpd ci-dessus, on peut maintenant constater que l'état est **inactive (dead)**.  L'état peut être une de 7 valeurs :
  
-Pour redémarrer un job, utilisez la commande **restart**.+  * **inactive (dead)** - le service est arrêté. 
 +  * **active(running** - le service est démarré avec un ou plusieurs processus. 
 +  * **active(exited)** - le service a terminé une configuration unique. 
 +  * **active(waiting)** - le service est démarré mais en attente d'un évènement. 
 +  * **activating** - le service est en cours d'activation. 
 +  * **deactivating** - le service est en cours de désactivation. 
 +  * **failed** - le service a rencontré une erreur fatale.
  
-==Options de la Commande restart== +Il est possible de vérifier l'état en utilisant le commande **systemctl is-active** :
- +
-Les options de la commande **restart** sont :+
  
 <code> <code>
-[root@centos6 ~]# restart --help +[root@centos8 ~]# systemctl is-active httpd.service 
-Usage: restart [OPTION]... JOB [KEY=VALUE]... +inactive
-Restart job. +
- +
-Options: +
-  -n, --no-wait               do not wait for job to restart before exiting +
-      --system                use D-Bus system bus to connect to init daemon +
-      --dest=NAME             destination well-known name on system bus +
-  -q, --quiet                 reduce output to errors only +
-  -v, --verbose               increase output to include informational messages +
-      --help                  display this help and exit +
-      --version               output version information and exit +
- +
-JOB is the name of the job that is to be restarted, this may be followed by +
-zero or more environment variables to be defined in the job after restarting. +
- +
-The environment also serves to distinguish between job instances, and thus +
-decide which of multiple instances will be restarted. +
- +
-Report bugs at <https://launchpad.net/upstart/+bugs> +
 </code> </code>
  
-<WRAP center round important> +Pour rendre l'état **active(running)**, utilisez la commande suivante :
-Il est aussi possible d'utiliser les commandes **initctl start**, **initctl stop** et **initctl restart** pour gérer les jobs. +
-</WRAP> +
- +
-=====Démarrer RHEL/CentOS 7===== +
- +
-RHEL/CentOS 7, comme beaucoup d'autres distributions, ont abandonné **Upstart** pour **Systemd**. Ce dernier prend une approche différente au démarrage de Linux. En effet, **SysVinit** et **Upstart** sont des systèmes de démarrage **séquentiels**. **Systemd** essaie, par contre, de démarrer autant de services en parallèle que possible. Ceci est rendu possible car la majorité d'architectures matérielles modernes sont multi-cœurs. Si un service dépend d'un autre qui n'est pas encore démarré ce premier est mis en attente dans une mémoire tampon. Qui plus est, les services qui ne sont pas nécessaires au démarrage de la machine, tel cups, ne sont démarrés ultérieurement que si nécessaire. Lors de démarrage, les partitions sont montées en parallèle. Dernièrement, **Systemd** remplace les scripts de démarrage traditionnels avec des binaires compilés, beaucoup plus rapides que leur prédécesseurs. +
- +
-Au lieu de parler de scripts de démarrage et de niveaux d'exécution, **Systemd** utilise la terminologie **Unités** (//Units//et **Cibles** (//Targets//). Une Cible est en quelque sorte une **grande étape** dans le démarrage du système tandis qu'une Unité peut être : +
- +
-  * un automount - (.automount), +
-  * une périphérique - //Device// - (.device), +
-  * un montage d'un périphérique - //Mount// - (.mount), +
-  * un chemin - //Path// - (.path) +
-  * un socket - //Socket// - (.socket), +
-  * un service - //Service// - (.service), +
-  * une instantanée - //Snapshot// - (.snapshot), +
-  * une cible - //Target// - (.target). +
- +
-<WRAP center round important> +
-**Important** : Dans le contexte d'une Unité, le type **cible** regroupe des Unités multiples afin qu'elles puissent être démarrées en même temps. Par exemple **network.target** regroupe toutes les Unités nécessaires pour démarrer toutes les interfaces réseaux en même temps. +
-</WRAP> +
- +
-====La Commande systemctl==== +
- +
-Pour visualiser la liste des Unités, il convient d'utiliser la commande **systemctl** avec l'option **list-units** :+
  
 <code> <code>
-[root@centos7 ~]# systemctl list-units +[root@centos8 ~]# systemctl start httpd.service
-UNIT                                                           LOAD   ACTIVE SUB       DESCRIPTION +
-proc-sys-fs-binfmt_misc.automount                              loaded active waiting   Arbitrary Executable File Formats File System Automount Point +
-sys-devices-pci0000:...t1-target1:0:0-1:0:0:0-block-sr0.device loaded active plugged   VBOX_CD-ROM +
-sys-devices-pci0000:00-0000:00:03.0-net-enp0s3.device          loaded active plugged   PRO/1000 MT Desktop Adapter +
-sys-devices-pci0000:00-0000:00:05.0-sound-card0.device         loaded active plugged   82801AA AC'97 Audio Controller +
-sys-devices-pci0000:...rget2:0:0-2:0:0:0-block-sda-sda1.device loaded active plugged   VBOX_HARDDISK +
-sys-devices-pci0000:...rget2:0:0-2:0:0:0-block-sda-sda2.device loaded active plugged   VBOX_HARDDISK +
-sys-devices-pci0000:...rget2:0:0-2:0:0:0-block-sda-sda3.device loaded active plugged   VBOX_HARDDISK +
-sys-devices-pci0000:...t2-target2:0:0-2:0:0:0-block-sda.device loaded active plugged   VBOX_HARDDISK +
-sys-devices-platform-serial8250-tty-ttyS0.device               loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS0 +
-sys-devices-platform-serial8250-tty-ttyS1.device               loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS1 +
-sys-devices-platform-serial8250-tty-ttyS2.device               loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS2 +
-sys-devices-platform-serial8250-tty-ttyS3.device               loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS3 +
-sys-module-configfs.device                                     loaded active plugged   /sys/module/configfs +
-sys-module-fuse.device                                         loaded active plugged   /sys/module/fuse +
-sys-subsystem-net-devices-enp0s3.device                        loaded active plugged   PRO/1000 MT Desktop Adapter +
--.mount                                                        loaded active mounted   / +
-boot.mount                                                     loaded active mounted   /boot +
-dev-hugepages.mount                                            loaded active mounted   Huge Pages File System +
-dev-mqueue.mount                                               loaded active mounted   POSIX Message Queue File System +
-proc-fs-nfsd.mount                                             loaded active mounted   NFSD configuration filesystem +
-run-media-trainee-VBOXADDITIONS_4.3.28_100309.mount            loaded active mounted   /run/media/trainee/VBOXADDITIONS_4.3.28_100309 +
-run-user-1000-gvfs.mount                                       loaded active mounted   /run/user/1000/gvfs +
-sys-fs-fuse-connections.mount                                  loaded active mounted   FUSE Control File System +
-sys-kernel-config.mount                                        loaded active mounted   Configuration File System +
-sys-kernel-debug.mount                                         loaded active mounted   Debug File System +
-var-lib-nfs-rpc_pipefs.mount                                   loaded active mounted   RPC Pipe File System +
-brandbot.path                                                  loaded active waiting   Flexible branding +
-cups.path                                                      loaded active waiting   CUPS Printer Service Spool +
-systemd-ask-password-plymouth.path                             loaded active waiting   Forward Password Requests to Plymouth Directory Watch +
-systemd-ask-password-wall.path                                 loaded active waiting   Forward Password Requests to Wall Directory Watch +
-session-1.scope                                                loaded active running   Session 1 of user trainee +
-abrt-ccpp.service                                              loaded active exited    Install ABRT coredump hook +
-abrt-oops.service                                              loaded active running   ABRT kernel log watcher +
-abrt-xorg.service                                              loaded active running   ABRT Xorg log watcher +
-abrtd.service                                                  loaded active running   ABRT Automated Bug Reporting Tool +
-accounts-daemon.service                                        loaded active running   Accounts Service +
-alsa-state.service                                             loaded active running   Manage Sound Card State (restore and store) +
-atd.service                                                    loaded active running   Job spooling tools +
-auditd.service                                                 loaded active running   Security Auditing Service +
-avahi-daemon.service                                           loaded active running   Avahi mDNS/DNS-SD Stack +
-bluetooth.service                                              loaded active running   Bluetooth service +
-chronyd.service                                                loaded active running   NTP client/server +
-colord.service                                                 loaded active running   Manage, Install and Generate Color Profiles +
-crond.service                                                  loaded active running   Command Scheduler +
-cups.service                                                   loaded active running   CUPS Printing Service +
-dbus.service                                                   loaded active running   D-Bus System Message Bus +
-firewalld.service                                              loaded active running   firewalld - dynamic firewall daemon +
-gdm.service                                                    loaded active running   GNOME Display Manager +
-gssproxy.service                                               loaded active running   GSSAPI Proxy Daemon +
-iscsi-shutdown.service                                         loaded active exited    Logout off all iSCSI sessions on shutdown +
-kdump.service                                                  loaded failed failed    Crash recovery kernel arming +
-kmod-static-nodes.service                                      loaded active exited    Create list of required static device nodes for the current ker +
-ksm.service                                                    loaded active exited    Kernel Samepage Merging +
-ksmtuned.service                                               loaded active running   Kernel Samepage Merging (KSM) Tuning Daemon +
-libstoragemgmt.service                                         loaded active running   libstoragemgmt plug-in server daemon +
-libvirtd.service                                               loaded active running   Virtualization daemon +
-lvm2-lvmetad.service                                           loaded active running   LVM2 metadata daemon+
 </code> </code>
  
-Pour consulter la liste des Unités inactifs, utilisez la commande suivante :+Vérifiez ensuite l'état du service :
  
 <code> <code>
-[root@centos7 ~]# systemctl list-units --all | grep inactive | more +[root@centos8 ~]# systemctl is-active httpd.service 
-proc-sys-fs-binfmt_misc.mount                                                             loaded inactive dead      Arbitrary Executable File Formats  +active
-File System +
-systemd-ask-password-console.path                                                         loaded inactive dead      Dispatch Password Requests to Cons +
-ole Directory Watch +
-abrt-vmcore.service                                                                       loaded inactive dead      Harvest vmcores for ABRT +
-alsa-restore.service                                                                      loaded inactive dead      Restore Sound Card State +
-alsa-store.service                                                                        loaded inactive dead      Store Sound Card State +
-apparmor.service                                                                          not-found inactive dead      apparmor.service +
-auth-rpcgss-module.service                                                                loaded inactive dead      Kernel Module supporting RPCSEC_GS +
-+
-brandbot.service                                                                          loaded inactive dead      Flexible Branding Service +
-cpupower.service                                                                          loaded inactive dead      Configure CPU power related settin +
-gs +
-dm-event.service                                                                          loaded inactive dead      Device-mapper event daemon +
-dmraid-activation.service                                                                 loaded inactive dead      Activation of DM RAID sets +
-dracut-shutdown.service                                                                   loaded inactive dead      Restore /run/initramfs +
-ebtables.service                                                                          loaded inactive dead      Ethernet Bridge Filtering tables +
-emergency.service                                                                         loaded inactive dead      Emergency Shell +
-exim.service                                                                              not-found inactive dead      exim.service +
-getty@tty1.service                                                                        loaded inactive dead      Getty on tty1 +
-hypervkvpd.service                                                                        loaded inactive dead      Hyper-V KVP daemon +
-hypervvssd.service                                                                        loaded inactive dead      Hyper-V VSS daemon +
-ip6tables.service                                                                         loaded inactive dead      IPv6 firewall with ip6tables +
-iptables.service                                                                          loaded inactive dead      IPv4 firewall with iptables +
-irqbalance.service                                                                        loaded inactive dead      irqbalance daemon +
-iscsi.service                                                                             loaded inactive dead      Login and scanning of iSCSI device +
-+
-iscsid.service                                                                            loaded inactive dead      Open-iSCSI +
-iscsiuio.service                                                                          loaded inactive dead      iSCSI UserSpace I/O driver +
---More-- +
-</code>+
  
-Pour consulter la liste des fichiers Unitésutilisez la commande suivante :+[root@centos8 ~]# systemctl status httpd.service 
 +● httpd.service - The Apache HTTP Server 
 +   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) 
 +   Active: active (running) since Sun 2021-06-06 15:33:06 EDT; 14s ago 
 +     Docs: man:httpd.service(8) 
 + Main PID: 34382 (httpd) 
 +   Status: "Runninglistening on: port 80" 
 +    Tasks: 213 (limit: 23719) 
 +   Memory: 36.3M 
 +   CGroup/system.slice/httpd.service 
 +           ├─34382 /usr/sbin/httpd -DFOREGROUND 
 +           ├─34383 /usr/sbin/httpd -DFOREGROUND 
 +           ├─34384 /usr/sbin/httpd -DFOREGROUND 
 +           ├─34385 /usr/sbin/httpd -DFOREGROUND 
 +           └─34386 /usr/sbin/httpd -DFOREGROUND
  
-<code> +Jun 06 15:33:05 centos8.ittraining.loc systemd[1]: Starting The Apache HTTP Server... 
-[root@centos7 ~]# systemctl list-unit-files | more +Jun 06 15:33:06 centos8.ittraining.loc systemd[1]: Started The Apache HTTP Server
-UNIT FILE                                   STATE    +Jun 06 15:33:06 centos8.ittraining.loc httpd[34382]: Server configured, listening on: port 80
-proc-sys-fs-binfmt_misc.automount           static   +
-dev-hugepages.mount                         static   +
-dev-mqueue.mount                            static   +
-proc-fs-nfsd.mount                          static   +
-proc-sys-fs-binfmt_misc.mount               static   +
-sys-fs-fuse-connections.mount               static   +
-sys-kernel-config.mount                     static   +
-sys-kernel-debug.mount                      static   +
-tmp.mount                                   disabled +
-var-lib-nfs-rpc_pipefs.mount                static   +
-brandbot.path                               disabled +
-cups.path                                   enabled  +
-systemd-ask-password-console.path           static   +
-systemd-ask-password-plymouth.path          static   +
-systemd-ask-password-wall.path              static   +
-session-1.scope                             static   +
-session-8.scope                             static   +
-abrt-ccpp.service                           enabled  +
-abrt-oops.service                           enabled  +
-abrt-pstoreoops.service                     disabled +
-abrt-vmcore.service                         enabled  +
-abrt-xorg.service                           enabled  +
-abrtd.service                               enabled  +
-accounts-daemon.service                     enabled  +
-alsa-restore.service                        static   +
-alsa-state.service                          static   +
-alsa-store.service                          static   +
-anaconda-direct.service                     static   +
---More--+
 </code> </code>
  
-===Options de la Commande systemctl=== +Pour arrêter une Unité de service, utilisez la commande suivante :
- +
-Les options de la commande **systemctl** sont :+
  
 <code> <code>
-[root@centos7 ~]# systemctl --help +[root@centos8 ~]# systemctl stop httpd.service 
-systemctl [OPTIONS...{COMMAND} ...+[root@centos8 ~]# systemctl status httpd.service 
 +● httpd.service - The Apache HTTP Server 
 +   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) 
 +   Active: inactive (dead) since Sun 2021-06-06 23:58:04 EDT; 8s ago 
 +     Docs: man:httpd.service(8) 
 +  Process: 34382 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS) 
 + Main PID: 34382 (code=exited, status=0/SUCCESS) 
 +   Status: "Running, listening on: port 80"
  
-Query or send control commands to the systemd manager. +Jun 06 15:33:05 centos8.ittraining.loc systemd[1]: Starting The Apache HTTP Server... 
- +Jun 06 15:33:06 centos8.ittraining.loc systemd[1]: Started The Apache HTTP Server
-  -h --help           Show this help +Jun 06 15:33:06 centos8.ittraining.loc httpd[34382]: Server configuredlistening on: port 80 
-     --version        Show package version +Jun 06 23:58:02 centos8.ittraining.loc systemd[1]: Stopping The Apache HTTP Server... 
-  -t --type=TYPE      List only units of a particular type +Jun 06 23:58:04 centos8.ittraining.loc systemd[1]: httpd.serviceSucceeded
-     --state=STATE    List only units with particular LOAD or SUB or ACTIVE state +Jun 06 23:58:04 centos8.ittraining.loc systemd[1]: Stopped The Apache HTTP Server.
-  -p --property=NAME  Show only properties by this name +
-  -a --all            Show all loaded units/properties, including dead/empty +
-                      onesTo list all units installed on the system, use +
-                      the 'list-unit-files' command instead. +
-     --reverse        Show reverse dependencies with 'list-dependencies' +
-  -l --full           Don't ellipsize unit names on output +
-     --fail           When queueing a new job, fail if conflicting jobs are +
-                      pending +
-     --irreversible   When queueing a new job, make sure it cannot be implicitly +
-                      cancelled +
-     --ignore-dependencies +
-                      When queueing a new job, ignore all its dependencies +
-     --show-types     When showing sockets, explicitly show their type +
-  -i --ignore-inhibitors +
-                      When shutting down or sleeping, ignore inhibitors +
-     --kill-who=WHO   Who to send signal to +
-  -s --signal=SIGNAL  Which signal to send +
-  -H --host=[USER@]HOST +
-                      Show information for remote host +
-  -P --privileged     Acquire privileges before execution +
-  -q --quiet          Suppress output +
-     --no-block       Do not wait until operation finished +
-     --no-wall        Don't send wall message before halt/power-off/reboot +
-     --no-reload      When enabling/disabling unit files, don't reload daemon +
-                      configuration +
-     --no-legend      Do not print a legend (column headers and hints) +
-     --no-pager       Do not pipe output into a pager +
-     --no-ask-password +
-                      Do not ask for system passwords +
-     --system         Connect to system manager +
-     --user           Connect to user service manager +
-     --global         Enable/disable unit files globally +
-     --runtime        Enable unit files only temporarily until next reboot +
-  -f --force          When enabling unit files, override existing symlinks +
-                      When shutting down, execute action immediately +
-     --root=PATH      Enable unit files in the specified root directory +
-  -n --lines=INTEGER  Number of journal entries to show +
-  -o --output=STRING  Change journal output mode (short, short-monotonic, +
-                      verbose, export, json, json-pretty, json-sse, cat) +
-     --plain          Print unit dependencies as a list instead of a tree +
- +
-Unit Commands: +
-  list-units                      List loaded units +
-  list-sockets                    List loaded sockets ordered by address +
-  start [NAME...]                 Start (activate) one or more units +
-  stop [NAME...]                  Stop (deactivate) one or more units +
-  reload [NAME...               Reload one or more units +
-  restart [NAME...]               Start or restart one or more units +
-  try-restart [NAME...]           Restart one or more units if active +
-  reload-or-restart [NAME...    Reload one or more units if possible+
-                                  otherwise start or restart +
-  reload-or-try-restart [NAME...] Reload one or more units if possible, +
-                                  otherwise restart if active +
-  isolate [NAME                 Start one unit and stop all others +
-  kill [NAME...]                  Send signal to processes of a unit +
-  is-active [NAME...]             Check whether units are active +
-  is-failed [NAME...]             Check whether units are failed +
-  status [NAME...|PID...]         Show runtime status of one or more units +
-  show [NAME...|JOB...]           Show properties of one or more +
-                                  units/jobs or the manager +
-  set-property [NAME] [ASSIGNMENT...] +
-                                  Sets one or more properties of a unit +
-  help [NAME...|PID...]           Show manual for one or more units +
-  reset-failed [NAME...]          Reset failed state for all, one, or more +
-                                  units +
-  list-dependencies [NAME]        Recursively show units which are required +
-                                  or wanted by this unit or by which this +
-                                  unit is required or wanted +
- +
-Unit File Commands: +
-  list-unit-files                 List installed unit files +
-  enable [NAME...]                Enable one or more unit files +
-  disable [NAME...              Disable one or more unit files +
-  reenable [NAME...]              Reenable one or more unit files +
-  preset [NAME...]                Enable/disable one or more unit files +
-                                  based on preset configuration +
-  is-enabled [NAME...]            Check whether unit files are enabled +
- +
-  mask [NAME...]                  Mask one or more units +
-  unmask [NAME...]                Unmask one or more units +
-  link [PATH...]                  Link one or more units files into +
-                                  the search path +
-  get-default                     Get the name of the default target +
-  set-default NAME                Set the default target +
- +
-Job Commands: +
-  list-jobs                       List jobs +
-  cancel [JOB...]                 Cancel all, one, or more jobs +
- +
-Snapshot Commands: +
-  snapshot [NAME]                 Create a snapshot +
-  delete [NAME...]                Remove one or more snapshots +
- +
-Environment Commands: +
-  show-environment                Dump environment +
-  set-environment [NAME=VALUE...] Set one or more environment variables +
-  unset-environment [NAME...    Unset one or more environment variables +
- +
-Manager Lifecycle Commands: +
-  daemon-reload                   Reload systemd manager configuration +
-  daemon-reexec                   Reexecute systemd manager +
- +
-System Commands: +
-  default                         Enter system default mode +
-  rescue                          Enter system rescue mode +
-  emergency                       Enter system emergency mode +
-  halt                            Shut down and halt the system +
-  poweroff                        Shut down and power-off the system +
-  reboot                          Shut down and reboot the system +
-  kexec                           Shut down and reboot the system with kexec +
-  exit                            Request user instance exit +
-  switch-root [ROOT] [INIT]       Change to a different root file system +
-  suspend                         Suspend the system +
-  hibernate                       Hibernate the system +
-  hybrid-sleep                    Hibernate and suspend the system +
-lines 95-123/123 (END)+
 </code> </code>
  
-====Fichiers de Configuration====+Pour désactiver un service au prochain démarrage du système, utilisez l'option **disable** :
  
-Les Cibles et les Unités sont configurées par des fichiers se trouvant dans le répertoire **/etc/systemd/system** :+<code> 
 +[root@centos8 ~]# systemctl disable httpd.service 
 +Removed /etc/systemd/system/multi-user.target.wants/httpd.service. 
 +[root@centos8 ~]# systemctl status httpd.service 
 +● httpd.service - The Apache HTTP Server 
 +   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) 
 +   Active: inactive (dead) 
 +     Docs: man:httpd.service(8)
  
-<code> +Jun 06 15:33:05 centos8.ittraining.loc systemd[1]Starting The Apache HTTP Server... 
-[root@centos7 ~]# ls -l /etc/systemd/system +Jun 06 15:33:06 centos8.ittraining.loc systemd[1]Started The Apache HTTP Server
-total 12 +Jun 06 15:33:06 centos8.ittraining.loc httpd[34382]Server configured, listening on: port 80 
-drwxr-xr-x. 2 root root   54 Mar  8 13:57 basic.target.wants +Jun 06 23:58:02 centos8.ittraining.loc systemd[1]Stopping The Apache HTTP Server... 
-drwxr-xr-x. 2 root root   30 Mar  8 13:53 bluetooth.target.wants +Jun 06 23:58:04 centos8.ittraining.loc systemd[1]httpd.serviceSucceeded
-lrwxrwxrwx. 1 root root   41 Mar  8 13:53 dbus-org.bluez.service -> /usr/lib/systemd/system/bluetooth.service +Jun 06 23:58:04 centos8.ittraining.loc systemd[1]Stopped The Apache HTTP Server.
-lrwxrwxrwx. root root   41 Mar  8 13:48 dbus-org.fedoraproject.FirewallD1.service -> /usr/lib/systemd/system/firewalld.service +
-lrwxrwxrwx. 1 root root   44 Mar  8 13:48 dbus-org.freedesktop.Avahi.service -> /usr/lib/systemd/system/avahi-daemon.service +
-lrwxrwxrwx. 1 root root   44 Mar  8 13:57 dbus-org.freedesktop.ModemManager1.service -> /usr/lib/systemd/system/ModemManager.service +
-lrwxrwxrwx. root root   46 Mar  8 13:49 dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service +
-lrwxrwxrwx. 1 root root   57 Mar  8 13:49 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service +
-lrwxrwxrwx. 1 root root   36 Mar  8 14:05 default.target -> /lib/systemd/system/graphical.target +
-drwxr-xr-x. 2 root root   85 Mar  8 13:47 default.target.wants +
-lrwxrwxrwx. 1 root root   35 Mar  8 13:54 display-manager.service -> /usr/lib/systemd/system/gdm.service +
-drwxr-xr-x2 root root   31 Mar  8 13:47 getty.target.wants +
-drwxr-xr-x. 2 root root   63 Jun  4 14:59 graphical.target.wants +
-drwxr-xr-x. 2 root root 4096 Jun  4 10:00 multi-user.target.wants +
-drwxr-xr-x. 2 root root   29 Mar  8 13:48 nfs.target.wants +
-drwxr-xr-x. 2 root root   25 Mar  8 13:50 printer.target.wants +
-drwxr-xr-x. 2 root root   30 Jun  4 10:00 remote-fs.target.wants +
-drwxr-xr-x. 2 root root 4096 Mar  8 13:50 sockets.target.wants +
-drwxr-xr-x. 2 root root   35 Mar  8 13:57 spice-vdagentd.target.wants +
-drwxr-xr-x. 2 root root 4096 Mar  8 13:49 sysinit.target.wants +
-drwxr-xr-x. 2 root root   83 Mar  8 13:49 system-update.target.wants+
 </code> </code>
  
-ainsi que par des fichiers se trouvant dans le répertoire **/lib/systemd/system** et **/usr/lib/systemd/system** :+===5.2 - Gestion d'Instances Multiples===
  
-<code> +Systemd permet l'utilisation des gabarits (templates) des fichiers de configuration des UnitésDe cette façon il est possible de faire coexister deux ou plusieurs instances du même service. Un gabarit est reconnaissable par le caractère **@** qui est placé juste avant le point dans le nom du fichier :
-[root@centos7 ~]# ls -/lib/systemd/system | more +
-total 1208 +
--rw-r--r--. 1 root root  275 Mar 24 04:56 abrt-ccpp.service +
--rw-r--r--1 root root  380 Mar 24 04:56 abrtd.service +
--rw-r--r--. 1 root root  361 Mar 24 04:56 abrt-oops.service +
--rw-r--r--. 1 root root  266 Mar 24 04:56 abrt-pstoreoops.service +
--rw-r--r--. 1 root root  262 Mar 24 04:56 abrt-vmcore.service +
--rw-r--r--. 1 root root  311 Mar 24 04:56 abrt-xorg.service +
--rw-r--r--. 1 root root  421 Jun 10  2014 accounts-daemon.service +
--rw-r--r--. 1 root root  501 Mar  5 20:37 alsa-restore.service +
--rw-r--r--. 1 root root  558 Mar  5 20:37 alsa-state.service +
--rw-r--r--. 1 root root  412 Mar  5 20:37 alsa-store.service +
--rw-r--r--. 1 root root  645 Mar 26 11:43 anaconda-direct.service +
--rw-r--r--. 1 root root  185 Mar 26 11:43 anaconda-nm-config.service +
--rw-r--r--. 1 root root  660 Mar 26 11:43 anaconda-noshell.service +
--rw-r--r--. 1 root root  387 Mar 26 11:43 anaconda.service +
--rw-r--r--. 1 root root  684 Mar 26 11:43 anaconda-shell@.service +
--rw-r--r--. 1 root root  322 Mar 26 11:43 anaconda-sshd.service +
--rw-r--r--. 1 root root  312 Mar 26 11:43 anaconda.target +
-drwxr-xr-x. 2 root root 4096 Jun  4 15:33 anaconda.target.wants +
--rw-r--r--. 1 root root  498 Mar 26 11:43 anaconda-tmux@.service +
--rw-r--r--. 1 root root  275 Jun 10  2014 arp-ethers.service +
--rw-r--r--. 1 root root  205 Oct  7  2014 atd.service +
--rw-r-----. 1 root root  669 Mar  5 22:59 auditd.service +
--rw-r--r--. 1 root root  663 Mar  6 05:17 auth-rpcgss-module.service +
-lrwxrwxrwx. 1 root root   14 Jun  4 09:52 autovt@.service -> getty@.service +
--rw-r--r--. 1 root root 1044 Mar  5 23:03 avahi-daemon.service +
--rw-r--r--. 1 root root  874 Mar  5 23:03 avahi-daemon.socket +
--rw-r--r--. 1 root root  546 May 12 21:44 basic.target +
-drwxr-xr-x. 2 root root 4096 Jun  4 10:07 basic.target.wants +
---More-- +
-</code>+
  
 <code> <code>
-[root@centos7 ~]# ls -l /usr/lib/systemd/system | more +[root@centos8 ~]# cat /usr/lib/systemd/system/httpd@.service 
-total 1208 +# This is a template for httpd instances
--rw-r--r--. 1 root root  275 Mar 24 04:56 abrt-ccpp.service +# See httpd@.service(8) for more information.
--rw-r--r--. 1 root root  380 Mar 24 04:56 abrtd.service +
--rw-r--r--. 1 root root  361 Mar 24 04:56 abrt-oops.service +
--rw-r--r--. 1 root root  266 Mar 24 04:56 abrt-pstoreoops.service +
--rw-r--r--. 1 root root  262 Mar 24 04:56 abrt-vmcore.service +
--rw-r--r--. 1 root root  311 Mar 24 04:56 abrt-xorg.service +
--rw-r--r--. 1 root root  421 Jun 10  2014 accounts-daemon.service +
--rw-r--r--. 1 root root  501 Mar  5 20:37 alsa-restore.service +
--rw-r--r--. 1 root root  558 Mar  5 20:37 alsa-state.service +
--rw-r--r--. 1 root root  412 Mar  5 20:37 alsa-store.service +
--rw-r--r--. 1 root root  645 Mar 26 11:43 anaconda-direct.service +
--rw-r--r--. 1 root root  185 Mar 26 11:43 anaconda-nm-config.service +
--rw-r--r--. 1 root root  660 Mar 26 11:43 anaconda-noshell.service +
--rw-r--r--. 1 root root  387 Mar 26 11:43 anaconda.service +
--rw-r--r--. 1 root root  684 Mar 26 11:43 anaconda-shell@.service +
--rw-r--r--1 root root  322 Mar 26 11:43 anaconda-sshd.service +
--rw-r--r--. 1 root root  312 Mar 26 11:43 anaconda.target +
-drwxr-xr-x. 2 root root 4096 Jun  4 15:33 anaconda.target.wants +
--rw-r--r--. 1 root root  498 Mar 26 11:43 anaconda-tmux@.service +
--rw-r--r--1 root root  275 Jun 10  2014 arp-ethers.service +
--rw-r--r--. 1 root root  205 Oct  7  2014 atd.service +
--rw-r-----. 1 root root  669 Mar  5 22:59 auditd.service +
--rw-r--r--. 1 root root  663 Mar  6 05:17 auth-rpcgss-module.service +
-lrwxrwxrwx. 1 root root   14 Jun  4 09:52 autovt@.service -> getty@.service +
--rw-r--r--. 1 root root 1044 Mar  5 23:03 avahi-daemon.service +
--rw-r--r--. 1 root root  874 Mar  5 23:03 avahi-daemon.socket +
--rw-r--r--. 1 root root  546 May 12 21:44 basic.target +
-drwxr-xr-x. 2 root root 4096 Jun  4 10:07 basic.target.wants +
---More-- +
-</code>+
  
-Par exemple, sous RHEL/CentOS 7, le service **sshd** est configuré par le fichier **/usr/lib/systemd/system/sshd.service** : 
- 
-<code> 
-[root@centos7 ~]# cat /usr/lib/systemd/system/sshd.service 
 [Unit] [Unit]
-Description=OpenSSH server daemon +Description=The Apache HTTP Server 
-After=network.target sshd-keygen.service +After=network.target remote-fs.target nss-lookup.target 
-Wants=sshd-keygen.service+Documentation=man:httpd@.service(8)
  
 [Service] [Service]
-EnvironmentFile=/etc/sysconfig/sshd +Type=notify 
-ExecStart=/usr/sbin/sshd -D $OPTIONS +Environment=LANG=C 
-ExecReload=/bin/kill -HUP $MAINPID +Environment=HTTPD_INSTANCE=%i 
-KillMode=process +ExecStartPre=/bin/mkdir -m 710 -p /run/httpd/instance-%i 
-Restart=on-failure +ExecStartPre=/bin/chown root.apache /run/httpd/instance-%i 
-RestartSec=42s+ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND -f conf/%i.conf 
 +ExecReload=/usr/sbin/httpd $OPTIONS -k graceful -f conf/%i.conf 
 +# Send SIGWINCH for graceful stop 
 +KillSignal=SIGWINCH 
 +KillMode=mixed 
 +PrivateTmp=true
  
 [Install] [Install]
Ligne 3071: Ligne 1821:
 </code> </code>
  
-Dans le fichier on peut noter la présence des lignes suivantes :+Une instance créée à partir de ce gabarit devrait avoir un nom sous la forme suivante :
  
-  * **ExecStart=/usr/sbin/sshd -D $OPTIONS**, +<code> 
-     * Cette ligne définit l'exécutable à lancer, +httpd@<nom_instance>.service 
-  * **After=network.target sshd-keygen.service**, +</code>
-    * Cette ligne indique les services qui devraient être démarrés avant le démarrage de sshd, +
-  * **WantedBy=multi-user.target**, +
-    * Cette ligne indique la Cible dans laquelle le service doit être démarré, +
-  * **Restart=on-failure**, +
-    * Cette ligne indique quand le service doit être re-démarré.+
  
-====Système de Démarrage====+Dans ce fichier on peut constater l'utilisation d'un **identifier** sous la forme de **%i**. Les identifiers sont de deux types - un dit **échappé** où les caractères non-ASCII alphanumérique sont remplacés par **escapes** de type langage C et l'autre non-échappé :
  
-**Systemd** utilise des Cibles d'une manière similaire à ce que **SysVinit** utilise des niveaux d'exécutionPour rendre la transition plus facileil existe des **Cibles** qui simulent les niveaux d'exécution de **SysVinit** :+  %n : est remplacé par le nom complet échappé de l'Unité. 
 +  %N : est remplacé par le nom complet non-échappé de l'Unité. 
 +  %p : est remplacé par le préfixe échappé de l'Unité, c'est-à-dire la partie **avant** le caractère @. 
 +  * %P : est remplacé par le préfixe non-échappé de l'Unité, c'est-à-dire la partie **avant** le caractère @. 
 +  * %i : est remplacé par le nom de l'instance échappé de l'Unité, c'est-à-dire la partie **après** le caractère @ et **avant** le point. 
 +  * %I : est remplacé par le nom de l'instance non-échappé de l'Unitéc'est-à-dire la partie **après** le caractère @ et **avant** le point. 
 +  * %f : est remplacé par le préfixe non-échappé ou le nom de l'instance non-échappé préfixé par le caractère **/**. 
 +  * %c : est remplacé par le CGroup de l'Unité sans le chemin /sys/fs/cgroup/systemd/
 +  * %u : est remplacé par le nom de l'utilisateur responsable de l'exécution de l'Unité. 
 +  %U : est remplacé par l'UID de l'utilisateur responsable de l'exécution de l'Unité. 
 +  %H : est remplacé par le nom d'hôte sur lequel est exécuté l'Unité. 
 +  %% est remplacé" par le caractère **%**.
  
-  runlevel0.target, +Créez maintenant deux copies du fichier **/usr/lib/systemd/system/httpd@.service** :
-  runlevel1.target, +
-  runlevel2.target, +
-  runlevel3.target, +
-  * runlevel4.target, +
-  * runlevel5.target, +
-  * runlevel6.target.+
  
-Ceci étant dans RHEL/CentOS 7 il y principalement deux Cibles finales :+<code> 
 +[root@centos8 ~]# cp /usr/lib/systemd/system/httpd@.service /usr/lib/systemd/system/httpd@instance01.service 
 +[root@centos8 ~]# cp /usr/lib/systemd/system/httpd@.service /usr/lib/systemd/system/httpd@instance02.service 
 +</code>
  
-  * **multi-user.target** qui est l'équivalent du niveau d'exécution 3, +Créez deux copies du fichier **/etc/httpd/conf/httpd.conf** :
-  * **graphical.target** qui est l'équivalent du niveau d'exécution 5.+
  
-Chaque Cible est décrite par un fichier de configuration :+<code> 
 +[root@centos8 ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/instance01.conf 
 +[root@centos8 ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/instance02.conf 
 +</code> 
 + 
 +Editez la directive **Listen** du fichier **/etc/httpd/conf/instance01.conf** et ajoutez la directive **PidFile** :
  
 <code> <code>
-[root@centos7 ~]# cat /usr/lib/systemd/system/graphical.target +[root@centos8 ~]# vi /etc/httpd/conf/instance01.conf  
- This file is part of systemd.+[root@centos8 ~]# more /etc/httpd/conf/instance01.conf  
 +# 
 +# This is the main Apache HTTP server configuration file.  It contains the 
 +# configuration directives that give the server its instructions. 
 +# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information. 
 +# In particular, see  
 +# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html> 
 +# for a discussion of each configuration directive.
 # #
- systemd is free software; you can redistribute it and/or modify it +See the httpd.conf(5) man page for more information on this configuration, 
-#  under the terms of the GNU Lesser General Public License as published by +and httpd.service(8) on using and configuring the httpd service. 
-#  the Free Software Foundation; either version 2.1 of the Licenseor +
- (at your option) any later version.+# Do NOT simply read the instructions in here without understanding 
 +# what they do.  They're here only as hints or reminders.  If you are unsure 
 +consult the online docs. You have been warned.   
 +
 +# Configuration and logfile names: If the filenames you specify for many 
 +of the server's control files begin with "/" (or "drive:/" for Win32), the 
 +server will use that explicit path.  If the filenames do *not* begin 
 +# with "/", the value of ServerRoot is prepended -- so 'log/access_log' 
 +# with ServerRoot set to '/www' will be interpreted by the 
 +# server as '/www/log/access_log'where as '/log/access_log' will be 
 +interpreted as '/log/access_log'.
  
-[Unit] +# 
-Description=Graphical Interface +# ServerRootThe top of the directory tree under which the server'
-Documentation=man:systemd.special(7) +# configuration, error, and log files are kept
-Requires=multi-user.target +
-After=multi-user.target +# Do not add a slash at the end of the directory path If you point 
-Conflicts=rescue.target +# ServerRoot at a non-local disk, be sure to specify a local disk on the 
-Wants=display-manager.service +# Mutex directive, if file-based mutexes are used If you wish to share the 
-AllowIsolate=yes+# same ServerRoot for multiple httpd daemons, you will need to change at 
 +# least PidFile
 +
 +ServerRoot "/etc/httpd"
  
-[Install] +# 
-Alias=default.target +# Listen: Allows you to bind Apache to specific IP addresses and/or 
-</code>+# ports, instead of the default. See also the <VirtualHost> 
 +# directive. 
 +
 +# Change this to Listen on specific IP addresses as shown below to  
 +# prevent Apache from glomming onto all bound IP addresses. 
 +
 +#Listen 12.34.56.78:80 
 +Listen 8008 
 +PidFile /var/run/httpd/instance01.pid
  
-Dans ce fichier on peut noter la présence des lignes suivantes :+
 +# Dynamic Shared Object (DSO) Support 
 +
 +# To be able to use the functionality of a module which was built as a DSO you 
 +# have to place corresponding `LoadModule' lines at this location so the 
 +# directives contained in it are actually available _before_ they are used. 
 +# Statically compiled modules (those listed by `httpd -l') do not need 
 +# to be loaded here. 
 +
 +# Example: 
 +# LoadModule foo_module modules/mod_foo.so 
 +--More--(19%) 
 +</code> 
  
-  * **Requires=multi-user.target**+Editez la directive **Listen** du fichier **/etc/httpd/conf/instance02.conf**  et ajoutez la directive **PidFile** :
-     Cette ligne indique que le **graphical.target** ne peut pas être atteint si le **multi-user.target** n'a pas été atteint aupréalable, +
-  * **After=multi-user.target**, +
-    * Cette ligne indique le **multi-user.target** doit d'abord être lancé, +
-  * **Conflicts=rescue.target**, +
-    * Cette ligne indique la Cible en conflit avec le **graphical.target**, +
-  * **Wants=display-manager.service**, +
-    * Cette ligne indique quel service doit être démarré. +
- +
-Dernièrement, sous RHEL/CentOS 7, la Cible par défaut peut être modifiée en éditant le lien symbolique **/etc/systemd/system/default.target** :+
  
 <code> <code>
-[root@centos7 ~]# ls -l /etc/systemd/system/default.target +[root@centos8 ~]# vi /etc/httpd/conf/instance02.conf  
-lrwxrwxrwx. 1 root root 36 Mar  8 14:05 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target +[root@centos8 ~]# more /etc/httpd/conf/instance02.conf  
-</code>+
 +# This is the main Apache HTTP server configuration file.  It contains the 
 +# configuration directives that give the server its instructions. 
 +# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information
 +# In particular, see  
 +<URL:http://httpd.apache.org/docs/2.4/mod/directives.html> 
 +# for a discussion of each configuration directive. 
 +
 +# See the httpd.conf(5) man page for more information on this configuration, 
 +# and httpd.service(8) on using and configuring the httpd service. 
 +
 +# Do NOT simply read the instructions in here without understanding 
 +# what they do.  They're here only as hints or reminders.  If you are unsure 
 +# consult the online docs. You have been warned.   
 +
 +# Configuration and logfile names: If the filenames you specify for many 
 +# of the server's control files begin with "/" (or "drive:/" for Win32), the 
 +# server will use that explicit path.  If the filenames do *not* begin 
 +# with "/", the value of ServerRoot is prepended -- so 'log/access_log' 
 +# with ServerRoot set to '/www' will be interpreted by the 
 +# server as '/www/log/access_log', where as '/log/access_log' will be 
 +# interpreted as '/log/access_log'.
  
-====La Commande systemd-analyze====+
 +# ServerRoot: The top of the directory tree under which the server'
 +# configuration, error, and log files are kept. 
 +
 +# Do not add a slash at the end of the directory path.  If you point 
 +# ServerRoot at a non-local disk, be sure to specify a local disk on the 
 +# Mutex directive, if file-based mutexes are used.  If you wish to share the 
 +# same ServerRoot for multiple httpd daemons, you will need to change at 
 +# least PidFile. 
 +
 +ServerRoot "/etc/httpd"
  
-Pour avoir une évaluation du temps de démarrage, il convient d'utiliser la commande suivante +
- +# ListenAllows you to bind Apache to specific IP addresses and/or 
-<code+# ports, instead of the default. See also the <VirtualHost
-[root@centos7 ~]systemd-analyze +directive. 
-Startup finished in 769ms (kernel+ 4.643s (initrd+ 40.147s (userspace= 45.560s+
 +# Change this to Listen on specific IP addresses as shown below to  
 +# prevent Apache from glomming onto all bound IP addresses. 
 +
 +#Listen 12.34.56.78:80 
 +Listen 8009  
 +PidFile /var/run/httpd/instance02.pid 
 +
 +# Dynamic Shared Object (DSOSupport 
 +
 +# To be able to use the functionality of a module which was built as a DSO you 
 +# have to place corresponding `LoadModule' lines at this location so the 
 +# directives contained in it are actually available _before_ they are used. 
 +# Statically compiled modules (those listed by `httpd -l'do not need 
 +# to be loaded here. 
 +
 +# Example: 
 +# LoadModule foo_module modules/mod_foo.so 
 +--More--(19%)
 </code> </code>
  
-L'option **blame** de la commande systemd-analyze permet de voir le temps de démarrage de chaque Unité afin de pourvoir se concentrer sur les plus lentes :+Démarrez les deux services :
  
 <code> <code>
-[root@centos7 ~]# systemd-analyze blame +[root@centos8 ~]# systemctl start httpd@instance01.service 
-         12.274s firewalld.service +[root@centos8 ~]# systemctl status httpd@instance01.service 
-         10.302s tuned.service +● httpd@instance01.service - The Apache HTTP Server 
-          9.676s accounts-daemon.service +   Loaded: loaded (/usr/lib/systemd/system/httpd@instance01.service; disabled; vendor preset: disabled) 
-          8.875s gssproxy.service +   Active: active (running) since Mon 2021-06-07 01:40:43 EDT; 7s ago 
-          8.860s ModemManager.service +     Docs: man:httpd@.service(8) 
-          8.598s vboxadd-x11.service +  Process: 43854 ExecStartPre=/bin/chown root.apache /run/httpd/instance-instance01 (code=exited, status=0/SUCCESS) 
-          7.829s kdump.service +  Process: 43852 ExecStartPre=/bin/mkdir -m 710 -p /run/httpd/instance-instance01 (code=exited, status=0/SUCCESS) 
-          7.089s vboxadd.service + Main PID: 43856 (httpd) 
-          6.398s plymouth-quit-wait.service +   Status: "Started, listening on: port 8008" 
-          5.593s NetworkManager-wait-online.service +    Tasks: 213 (limit: 23719) 
-          5.379s avahi-daemon.service +   Memory: 43.6M 
-          5.104s abrt-ccpp.service +   CGroup: /system.slice/system-httpd.slice/httpd@instance01.service 
-          5.065s postfix.service +           ├─43856 /usr/sbin/httpd -DFOREGROUND -f conf/instance01.conf 
-          4.684s systemd-logind.service +           ├─43857 /usr/sbin/httpd -DFOREGROUND -f conf/instance01.conf 
-          4.385s sysstat.service +           ├─43858 /usr/sbin/httpd -DFOREGROUND -f conf/instance01.conf 
-          4.306s rtkit-daemon.service +           ├─43859 /usr/sbin/httpd -DFOREGROUND -f conf/instance01.conf 
-          3.927s systemd-udev-settle.service +           └─43860 /usr/sbin/httpd -DFOREGROUND -f conf/instance01.conf
-          3.396s ksmtuned.service +
-          3.084s rhel-dmesg.service +
-          2.811s libvirtd.service +
-          2.428s chronyd.service +
-          2.401s vboxadd-service.service +
-          2.349s nfs-config.service +
-          2.266s var-lib-nfs-rpc_pipefs.mount +
-          2.229s rhel-loadmodules.service +
-          2.104s rsyslog.service +
-          1.357s network.service +
-          1.283s lvm2-monitor.service +
-          1.246s rpcbind.service +
-          1.069s systemd-fsck-root.service +
-          1.007s colord.service +
-           944ms systemd-tmpfiles-setup-dev.service +
-           872ms systemd-tmpfiles-clean.service +
-           791ms rhel-readonly.service +
-           780ms NetworkManager.service +
-           743ms dmraid-activation.service +
-           723ms gdm.service +
-           720ms ksm.service +
-           718ms polkit.service +
-           716ms proc-fs-nfsd.mount +
-           669ms auditd.service +
-           660ms boot.mount +
-           608ms systemd-udev-trigger.service +
-           601ms kmod-static-nodes.service +
-           565ms netcf-transaction.service +
-           520ms systemd-vconsole-setup.service +
-           497ms systemd-sysctl.service +
-           487ms sys-kernel-debug.mount +
-           302ms dev-disk-by\x2duuid-11a4d11d\x2d81e4\x2d46a7\x2d82e0\x2d7796cd597dc9.swap +
-           297ms systemd-tmpfiles-setup.service +
-           283ms dev-mqueue.mount +
-           282ms dev-hugepages.mount +
-           261ms rhel-import-state.service +
-           243ms udisks2.service +
-           239ms systemd-user-sessions.service +
-           235ms rpc-statd-notify.service +
-           217ms systemd-random-seed.service +
-           173ms plymouth-read-write.service +
-           161ms systemd-udevd.service +
-           147ms upower.service +
-           142ms systemd-fsck@dev-disk-by\x2duuid-e8d3bd48\x2d1386\x2d411c\x2d9675\x2d41c3f8f1a309.service +
-           110ms plymouth-start.service +
-            96ms sys-fs-fuse-connections.mount +
-            82ms bluetooth.service +
-            73ms iscsi-shutdown.service +
-            69ms systemd-remount-fs.service +
-            63ms systemd-hostnamed.service +
-            53ms systemd-update-utmp.service +
-            38ms systemd-journal-flush.service +
-            33ms sys-kernel-config.mount +
-            31ms systemd-update-utmp-runlevel.service +
-lines 43-71/71 (END) +
-</code>+
  
-L'option **critical-chain** permet de voir l'enchaînement des événements qui amènent au chargement de l'Unité passée en argument :+Jun 07 01:40:43 centos8.ittraining.loc systemd[1]: Starting The Apache HTTP Server... 
 +Jun 07 01:40:43 centos8.ittraining.loc systemd[1]: Started The Apache HTTP Server. 
 +Jun 07 01:40:43 centos8.ittraining.loc httpd[43856]: Server configured, listening on: port 8008 
 +[root@centos8 ~]# systemctl start httpd@instance02.service 
 +[root@centos8 ~]# systemctl status httpd@instance02.service 
 +● httpd@instance02.service The Apache HTTP Server 
 +   Loadedloaded (/usr/lib/systemd/system/httpd@instance02.service; disabled; vendor preset: disabled) 
 +   Active: active (running) since Mon 2021-06-07 01:36:45 EDT; 4min 24s ago 
 +     Docs: man:httpd@.service(8) 
 +  Process: 43568 ExecStartPre=/bin/chown root.apache /run/httpd/instance-instance02 (code=exited, status=0/SUCCESS) 
 +  Process: 43566 ExecStartPre=/bin/mkdir -m 710 -p /run/httpd/instance-instance02 (code=exited, status=0/SUCCESS) 
 + Main PID: 43569 (httpd) 
 +   Status: "Running, listening on: port 8009" 
 +    Tasks: 213 (limit: 23719) 
 +   Memory: 43.6M 
 +   CGroup: /system.slice/system-httpd.slice/httpd@instance02.service 
 +           ├─43569 /usr/sbin/httpd -DFOREGROUND -f conf/instance02.conf 
 +           ├─43571 /usr/sbin/httpd -DFOREGROUND -f conf/instance02.conf 
 +           ├─43572 /usr/sbin/httpd -DFOREGROUND -f conf/instance02.conf 
 +           ├─43573 /usr/sbin/httpd -DFOREGROUND -f conf/instance02.conf 
 +           └─43574 /usr/sbin/httpd -DFOREGROUND -f conf/instance02.conf
  
-<code> +Jun 07 01:36:45 centos8.ittraining.loc systemd[1]: Starting The Apache HTTP Server... 
-[root@centos7 ~]# systemd-analyze critical-chain sshd.service +Jun 07 01:36:45 centos8.ittraining.loc systemd[1]: Started The Apache HTTP Server
-The time after the unit is active or started is printed after the "@" character. +Jun 07 01:36:45 centos8.ittraining.loc httpd[43569]: Server configured, listening on: port 8009
-The time the unit takes to start is printed after the "+" character. +
- +
-sshd.service @32.037s +
-└─network.target @31.990s +
-  └─network.service @30.621s +1.357s +
-    └─NetworkManager.service @24.242s +780ms +
-      └─firewalld.service @11.954s +12.274s +
-        └─basic.target @11.937s +
-          └─sockets.target @11.937s +
-            └─dbus.socket @11.936s +
-              └─sysinit.target @11.784s +
-                └─systemd-update-utmp.service @11.726s +53ms +
-                  └─auditd.service @11.051s +669ms +
-                    └─systemd-tmpfiles-setup.service @10.734s +297ms +
-                      └─rhel-import-state.service @10.470s +261ms +
-                        └─local-fs.target @10.464s +
-                          └─boot.mount @9.798s +660ms +
-                            └─systemd-fsck@dev-disk-by\x2duuid-e8d3bd48\x2d1386\x2d411c\x2d9675\x2d41c3f8f1a309.service @9.654s +142ms +
-                              └─dev-disk-by\x2duuid-e8d3bd48\x2d1386\x2d411c\x2d9675\x2d41c3f8f1a309.device @9.650s+
 </code> </code>
  
-===Options de la Commande===+===5.3 - Interdire la Modification du Statut d'un Service===
  
-Les options de la commande **systemd-analyze** sont :+Il est possible d'interdire la modification en utilisant la commande **systemctl mask**:
  
 <code> <code>
-[root@centos7 ~]# systemd-analyze --help +[root@centos8 ~]# systemctl status httpd.service 
-systemd-analyze [OPTIONS...] {COMMAND} ...+● httpd.service The Apache HTTP Server 
 +   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) 
 +   Active: inactive (dead) 
 +     Docs: man:httpd.service(8)
  
-Process systemd profiling information+Jun 07 18:27:25 centos8.ittraining.loc httpd[58535]: Server configured, listening on: port 80 
 +Jun 07 18:27:29 centos8.ittraining.loc systemd[1]: Stopping The Apache HTTP Server... 
 +Jun 07 18:27:30 centos8.ittraining.loc systemd[1]: httpd.service: Succeeded. 
 +Jun 07 18:27:30 centos8.ittraining.loc systemd[1]: Stopped The Apache HTTP Server. 
 +Jun 07 18:27:32 centos8.ittraining.loc systemd[1]: Starting The Apache HTTP Server... 
 +Jun 07 18:27:32 centos8.ittraining.loc systemd[1]: Started The Apache HTTP Server. 
 +Jun 07 18:27:32 centos8.ittraining.loc httpd[58760]: Server configured, listening on: port 80 
 +Jun 07 18:27:34 centos8.ittraining.loc systemd[1]: Stopping The Apache HTTP Server... 
 +Jun 07 18:27:36 centos8.ittraining.loc systemd[1]: httpd.service: Succeeded. 
 +Jun 07 18:27:36 centos8.ittraining.loc systemd[1]: Stopped The Apache HTTP Server.
  
-  -h --help           Show this help +[root@centos8 ~]# systemctl mask httpd.service 
-     --version        Show package version +Created symlink /etc/systemd/system/httpd.service → /dev/null.
-     --system         Connect to system manager +
-     --user           Connect to user service manager +
-     --order          When generating a dependency graph, show only order +
-     --require        When generating a dependency graph, show only requirement +
-     --from-pattern=GLOB, --to-pattern=GLOB +
-                      When generating a dependency graph, filter only origins +
-                      or destinations, respectively +
-     --fuzz=TIMESPAN  When printing the tree of the critical chain, print also +
-                      services, which finished TIMESPAN earlier, than the +
-                      latest in the branchThe unit of TIMESPAN is seconds +
-                      unless specified with a different unit, i.e. 50ms +
-     --no-pager       Do not pipe output into a pager+
  
-Commands: +[root@centos8 ~]# systemctl enable httpd.service 
-  time                Print time spent in the kernel before reaching userspace +Failed to enable unit: Unit file /etc/systemd/system/httpd.service is masked. 
-  blame               Print list of running units ordered by time to init + 
-  critical-chain      Print a tree of the time critical chain of units +[root@centos8 ~]# systemctl start httpd.service 
-  plot                Output SVG graphic showing service initialization +Failed to start httpd.service: Unit httpd.service is masked.
-  dot                 Output dependency graph in dot(1) format +
-  set-log-level LEVEL Set logging threshold for systemd +
-  dump                Output state serialization of service manager+
 </code> </code>
  
-====Gestion des Services==== +Pour autoriser de nouveau les modifications, il convient d'utiliser la commande **systemctl unmask** :
- +
-Pour obtenir le détail sur un service donné, il convient d'utiliser la commande **systemctl** :+
  
 <code> <code>
-[root@centos7 ~]# systemctl status sshd.service +[root@centos8 ~]# systemctl unmask httpd.service 
-sshd.service - OpenSSH server daemon +Removed /etc/systemd/system/httpd.service.
-   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) +
-   Active: active (running) since Thu 2015-06-11 11:01:52 CEST; 2h 45min ago +
- Main PID: 1212 (sshd) +
-   CGroup: /system.slice/sshd.service +
-           └─1212 /usr/sbin/sshd -D+
  
-Jun 11 11:01:52 centos7.fenestros.loc systemd[1]: Started OpenSSH server daemon+[root@centos8 ~]# systemctl enable httpd.service 
-Jun 11 11:01:53 centos7.fenestros.loc sshd[1212]: Server listening on 0.0.0.0 port 22. +Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
-Jun 11 11:01:53 centos7.fenestros.loc sshd[1212]: Server listening on :: port 22. +
-</code>+
  
-Pour arrêter une Unité de service, utilisez la commande suivante :+[root@centos8 ~]# systemctl start httpd.service
  
-<code> +[root@centos8 ~]# systemctl status httpd.service 
-[root@centos7 ~]# systemctl stop sshd.service +● httpd.service - The Apache HTTP Server 
-[root@centos7 ~]# systemctl status sshd.service +   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled
-sshd.service - OpenSSH server daemon +   Active: active (running) since Mon 2021-06-07 18:30:59 EDT5s ago 
-   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) +     Docsman:httpd.service(8
-   Active: inactive (dead) since Thu 2015-06-11 13:58:59 CEST16s ago + Main PID: 59101 (httpd) 
-  Process1212 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS+   Status: "Startedlistening on: port 80" 
- Main PID: 1212 (code=exitedstatus=0/SUCCESS)+    Tasks: 213 (limit: 23719) 
 +   Memory: 39.4M 
 +   CGroup: /system.slice/httpd.service 
 +           ├─59101 /usr/sbin/httpd -DFOREGROUND 
 +           ├─59102 /usr/sbin/httpd -DFOREGROUND 
 +           ├─59103 /usr/sbin/httpd -DFOREGROUND 
 +           ├─59104 /usr/sbin/httpd -DFOREGROUND 
 +           └─59105 /usr/sbin/httpd -DFOREGROUND
  
-Jun 11 11:01:52 centos7.fenestros.loc systemd[1]: Started OpenSSH server daemon. +Jun 07 18:30:59 centos8.ittraining.loc systemd[1]: Starting The Apache HTTP Server... 
-Jun 11 11:01:53 centos7.fenestros.loc sshd[1212]: Server listening on 0.0.0.0 port 22+Jun 07 18:30:59 centos8.ittraining.loc systemd[1]: Started The Apache HTTP Server
-Jun 11 11:01:53 centos7.fenestros.loc sshd[1212]: Server listening on :: port 22. +Jun 07 18:31:00 centos8.ittraining.loc httpd[59101]: Server configured, listening onport 80
-Jun 11 13:58:59 centos7.fenestros.loc systemd[1]: Stopping OpenSSH server daemon..+
-Jun 11 13:58:59 centos7.fenestros.loc sshd[1212]: Received signal 15; terminating. +
-Jun 11 13:58:59 centos7.fenestros.loc systemd[1]: Stopped OpenSSH server daemon.+
 </code> </code>
  
-Pour démarrer un service, utilisez la commande suivante :+=====Arrêt du Système=====
  
-<code> +Sous RHEL CentOS 8 les commandes **halt**, **poweroff**, **reboot** et **shutdown** sont des liens symboliques vers **/bin/systemctl** :
-[root@centos7 ~]# systemctl start ssh.service +
-[root@centos7 ~]# systemctl status sshd.service +
-sshd.service - OpenSSH server daemon +
-   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) +
-   Active: active (running) since Thu 2015-06-11 14:00:17 CEST; 6s ago +
- Main PID: 6624 (sshd) +
-   CGroup: /system.slice/sshd.service +
-           └─6624 /usr/sbin/sshd -D +
- +
-Jun 11 14:00:17 centos7.fenestros.loc systemd[1]: Starting OpenSSH server daemon... +
-Jun 11 14:00:17 centos7.fenestros.loc systemd[1]: Started OpenSSH server daemon. +
-Jun 11 14:00:17 centos7.fenestros.loc sshd[6624]: Server listening on 0.0.0.0 port 22. +
-Jun 11 14:00:17 centos7.fenestros.loc sshd[6624]: Server listening on :: port 22. +
-</code> +
- +
-Pour désactiver un service au prochain démarrage du systèmeutilisez l'option **disable** :+
  
 <code> <code>
-[root@centos7 ~]# systemctl disable sshd.service +[root@centos8 ~]# ls -l /usr/sbin/shutdown /usr/sbin/halt /usr/sbin/poweroff /usr/sbin/reboot 
-rm '/etc/systemd/system/multi-user.target.wants/sshd.service' +lrwxrwxrwx1 root root 16 Apr  7 16:55 /usr/sbin/halt -../bin/systemctl 
-[root@centos7 ~]# systemctl status sshd.service +lrwxrwxrwx. 1 root root 16 Apr  7 16:55 /usr/sbin/poweroff -> ../bin/systemctl 
-sshd.service - OpenSSH server daemon +lrwxrwxrwx. 1 root root 16 Apr  7 16:55 /usr/sbin/reboot -> ../bin/systemctl 
-   Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled) +lrwxrwxrwx. 1 root root 16 Apr  7 16:55 /usr/sbin/shutdown -> ../bin/systemctl
-   Activeactive (running) since Thu 2015-06-11 14:00:17 CEST; 1min 59s ago +
- Main PID: 6624 (sshd) +
-   CGroup: /system.slice/sshd.service +
-           └─6624 /usr/sbin/sshd -D +
- +
-Jun 11 14:00:17 centos7.fenestros.loc systemd[1]Starting OpenSSH server daemon... +
-Jun 11 14:00:17 centos7.fenestros.loc systemd[1]Started OpenSSH server daemon. +
-Jun 11 14:00:17 centos7.fenestros.loc sshd[6624]: Server listening on 0.0.0.0 port 22. +
-Jun 11 14:00:17 centos7.fenestros.loc sshd[6624]: Server listening on :: port 22.+
 </code> </code>
  
-Pour activer un service au prochain démarrage du système, utilisez l'option **enable** :+La manière recommendée d'utiliser ces commandes est donc :
  
-<code> +  * systemctl halt 
-[root@centos7 ~]# systemctl enable sshd.service +  systemctl poweroff 
-ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service' +  * systemctl reboot 
-[root@centos7 ~]# systemctl status sshd.service +  systemctl shutdown
-sshd.service - OpenSSH server daemon +
-   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) +
-   Active: active (running) since Thu 2015-06-11 14:00:17 CEST; 3min 27s ago +
- Main PID: 6624 (sshd) +
-   CGroup: /system.slice/sshd.service +
-           └─6624 /usr/sbin/sshd -D+
  
-Jun 11 14:00:17 centos7.fenestros.loc systemd[1]: Starting OpenSSH server daemon... +Il est cependant toujours possibles d'utiliser les commandes **halt**, **poweroff**, **reboot** et **shutdown**.
-Jun 11 14:00:17 centos7.fenestros.loc systemd[1]: Started OpenSSH server daemon. +
-Jun 11 14:00:17 centos7.fenestros.loc sshd[6624]: Server listening on 0.0.0.0 port 22. +
-Jun 11 14:00:17 centos7.fenestros.loc sshd[6624]: Server listening on :: port 22. +
-</code> +
- +
-=====Arrêt du Système=====+
  
 ====La Commande shutdown==== ====La Commande shutdown====
Ligne 3395: Ligne 2132:
 La commande utilisée pour arrêter le système est la commande **shutdown** : La commande utilisée pour arrêter le système est la commande **shutdown** :
  
-  shutdown [-t sec] [-akrhHPfnc] heure [message]+  shutdown [-t sec] [-HPrhkc] heure [message]
  
 ===Options de la commande=== ===Options de la commande===
Ligne 3402: Ligne 2139:
  
 <code> <code>
-Usage:    shutdown [-akrhHPfnc[-t secs] time [warning message] +[root@centos8 ~]shutdown --help 
-                  -a:      use /etc/shutdown.allow +shutdown [OPTIONS...] [TIME] [WALL...]
-                  -k:      don't really shutdown, only warn. +
-                  -r:      reboot after shutdown. +
-                  -h:      halt after shutdown. +
-                  -P:      halt action is to turn off power. +
-                  -H:      halt action is to just halt. +
-                  -f:      do a 'fast' reboot (skip fsck). +
-                  -F:      Force fsck on reboot. +
-                  -n:      do not go through "init" but go down real fast. +
-                  -c:      cancel a running shutdown. +
-                  -t secs: delay between warning and kill signal. +
-                  ** the "time" argument is mandatory! (try "now") ** +
-</code>+
  
-Parmi les options les plus importantes, on note :+Shut down the system.
  
-^ Option ^ Description ^ +     --help      Show this help 
--h | Arrêter le système | +  -H --halt      Halt the machine 
--r | Re-démarrer le système | +  -P --poweroff  Power-off the machine 
--c | Annuler l'opération shutdown en cours | +  -r --reboot    Reboot the machine 
--f | Re-démarrer rapidement sans vérifier les systèmes de fichiers | +  -h             Equivalent to --poweroff, overridden by --halt 
--F | Forcer la vérification des systèmes de fichiers lors du prochain démarrage |+  -k             Don't halt/power-off/reboot, just send warnings 
 +     --no-wall   Don't send wall message before halt/power-off/reboot 
 +  -c             Cancel a pending shutdown 
 +</code>
  
 L'option **heure** peut prendre plusieurs valeurs : L'option **heure** peut prendre plusieurs valeurs :
Ligne 3430: Ligne 2158:
 ^ Valeur ^ Description ^ ^ Valeur ^ Description ^
 | hh:mm | L'heure à laquelle l'opération aura lieu | | hh:mm | L'heure à laquelle l'opération aura lieu |
-| +m | Nombre de minutes avant que l'opération aura lieu | +| +m | Nombre de minutes avant que l'opération aura lieu. Si aucune valeur n'est spécifiée, la valeur par défaut est +1 
-| now | L'opération est immédiate |+| now | L'opération est immédiate. now est un alias de +0 |
  
-<WRAP center round important> +<WRAP center round important 60%
-**Important** : Si l'opération est programmée pour dans moins de 5 minutes, les connexions supplémentaires sont interdites, y comprises les tentatives de connexion de root. Notez aussi que l'utilisation de la commande **shutdown** peut être accordée à d'autres utilisateurs de root en utilisant le fichier **/etc/shutdown.allow**.+**Important** : Si l'opération est programmée pour dans moins de 5 minutes, les connexions supplémentaires sont interdites, y comprises les tentatives de connexion de root. 
 </WRAP> </WRAP>
  
-Dans votre VM, ouvrez deux terminaux. Dans le premier passez en tant que root. Planifiez ensuite un redémarrage de la VM dans 30 minutes :+L'option **-t** est utilisée pour accorder un temps de grâce :
  
 <code> <code>
-[root@centos7 ~]# shutdown -r +30 +[root@centos8 ~]# date && shutdown -t 60 -k 
- +Mon Jun  7 18:58:26 EDT 2021 
-Broadcast message from trainee@centos.fenestros.loc +Shutdown scheduled for Mon 2021-06-07 18:59:26 EDT, use 'shutdown -c' to cancel.
- (/dev/pts/0) at 10:12 ... +
- +
-The system is going down for reboot in 30 minutes! +
-</code>  +
- +
-Dans le deuxième terminal est passez en tant que route. Annulez ensuite le shutdown : +
- +
-<code> +
-[trainee@centos7 ~]$ su - +
-Mot de passe  +
-[root@centos7 ~]# shutdown -c +
-</code> +
- +
-Retournez au premier terminal et constatez le message affiché : +
- +
-<code> +
-[root@centos7 ~]# shutdown -r +30 +
- +
-Broadcast message from trainee@centos.fenestros.loc +
- (/dev/pts/0) at 10:12 ... +
- +
-The system is going down for reboot in 30 minutes! +
- +
- +
-shutdown: Shutdown cancelled +
-[root@centos7 ~]#+
 </code> </code>
  
 ==== La Commande reboot==== ==== La Commande reboot====
  
-Cette commande redémarre le système. Quand le système fonctionne normalement, l'exécution de reboot appelle la commande **shutdown -r**.+Cette commande redémarre le système.
  
 ===Options de la commande=== ===Options de la commande===
Ligne 3480: Ligne 2182:
  
 <code> <code>
-[root@centos7 ~]# reboot --help +[root@centos8 ~]# reboot --help 
-Usage: reboot [OPTION]...+reboot [OPTIONS...] [ARG] 
 Reboot the system. Reboot the system.
  
-Options: +     --help      Show this help 
-  -n, --no-sync               don't sync before reboot or halt +     --halt      Halt the machine 
-  -f--force                 force reboot or halt, don't call shutdown(8) +  ---poweroff  Switch off the machine 
-  -p, --poweroff              switch off the power when called as halt +     --reboot    Reboot the machine 
-  -w--wtmp-only             don'actually reboot or halt, just write wtmp +  -f --force     Force immediate halt/power-off/reboot 
-                                record +  -w --wtmp-only Don'halt/power-off/reboot, just write wtmp record 
-  -q, --quiet                 reduce output to errors only +  ---no-wtmp   Don't write wtmp record 
-  -v, --verbose               increase output to include informational messages +     --no-wall   Don't send wall message before halt/power-off/reboot
-      --help                  display this help and exit +
-      --version               output version information and exit +
- +
-This command is intended to instruct the kernel to reboot or halt the system; +
-when run without the -f option, or when in a system runlevel other than 0 or 6, +
-it will actually execute /sbin/shutdown. +
- +
- +
-Report bugs to <upstart-devel@lists.ubuntu.com>+
 </code> </code>
  
 ==== La Commande halt==== ==== La Commande halt====
  
-Cette commande arrête le système. Quand le système fonctionne normalement, l'exécution de halt appelle la commande **shutdown -h**.+Cette commande arrête le système.
  
 ===Options de la commande=== ===Options de la commande===
Ligne 3512: Ligne 2206:
  
 <code> <code>
-[root@centos7 ~]# halt --help +[root@centos8 ~]# halt --help 
-Usage: halt [OPTION]...+halt [OPTIONS...
 Halt the system. Halt the system.
  
-Options: +     --help      Show this help 
-  -n, --no-sync               don't sync before reboot or halt +     --halt      Halt the machine 
-  -f--force                 force reboot or halt, don't call shutdown(8) +  ---poweroff  Switch off the machine 
-  -p, --poweroff              switch off the power when called as halt +     --reboot    Reboot the machine 
-  -w--wtmp-only             don'actually reboot or halt, just write wtmp +  -f --force     Force immediate halt/power-off/reboot 
-                                record +  -w --wtmp-only Don'halt/power-off/reboot, just write wtmp record 
-  -q, --quiet                 reduce output to errors only +  ---no-wtmp   Don't write wtmp record 
-  -v, --verbose               increase output to include informational messages +     --no-wall   Don't send wall message before halt/power-off/reboot
-      --help                  display this help and exit +
-      --version               output version information and exit +
- +
-This command is intended to instruct the kernel to reboot or halt the system; +
-when run without the -f option, or when in a system runlevel other than 0 or 6, +
-it will actually execute /sbin/shutdown. +
- +
- +
-Report bugs to <upstart-devel@lists.ubuntu.com>+
 </code> </code>
  
 ==== La Commande poweroff==== ==== La Commande poweroff====
  
-Cette commande arrête le système et coupe l'alimentation électrique. Elle est l'équivalente de la commande **halt -p**. Quand le système fonctionne normalement, l'exécution de **poweroff** appelle la commande **shutdown -hP**.+Cette commande arrête le système et coupe l'alimentation électrique. 
  
 ===Options de la commande=== ===Options de la commande===
Ligne 3544: Ligne 2230:
  
 <code> <code>
-[root@centos7 ~]# poweroff --help +[root@centos8 ~]# poweroff --help 
-Usage: poweroff [OPTION]...+poweroff [OPTIONS...
 Power off the system. Power off the system.
  
-Options: +     --help      Show this help 
-  -n, --no-sync               don't sync before reboot or halt +     --halt      Halt the machine 
-  -f--force                 force reboot or halt, don't call shutdown(8) +  ---poweroff  Switch off the machine 
-  -p, --poweroff              switch off the power when called as halt +     --reboot    Reboot the machine 
-  -w--wtmp-only             don'actually reboot or halt, just write wtmp +  -f --force     Force immediate halt/power-off/reboot 
-                                record +  -w --wtmp-only Don'halt/power-off/reboot, just write wtmp record 
-  -q, --quiet                 reduce output to errors only +  ---no-wtmp   Don't write wtmp record 
-  -v, --verbose               increase output to include informational messages +     --no-wall   Don't send wall message before halt/power-off/reboot
-      --help                  display this help and exit +
-      --version               output version information and exit +
- +
-This command is intended to instruct the kernel to reboot or halt the system; +
-when run without the -f option, or when in a system runlevel other than 0 or 6, +
-it will actually execute /sbin/shutdown. +
- +
- +
-Report bugs to <upstart-devel@lists.ubuntu.com>+
 </code> </code>
  
 ----- -----
-<html> +Copyright © 2024 Hugh Norris.
-<div align="center"> +
-Copyright © 2021 Hugh Norris. +
-</html>+
Menu