Les différences principales entre System V et systemd
Savoir si on est sous System V ou systemd
En demandant quel est le 1er processus qui tourne sur le système
# ps -p 1 |
Généralités
Sous System V (systèmes anciens)
# service NomService {start|stop|restart|reload|status} |
Sous systemd (systèmes récents)
# systemctl {start|restart|stop|reload|enable|disable|mask|kill} NomService.service |
Commandes et accès
Sous System V
La configuration des services se trouve par défaut dans le fichier :
/etc/inittab
(définition des runlevelsid:niveaux:action:processus
)
Les services sont lancés par des scripts situés dans :
/etc/init.d
/etc/rc.d/init.d
(lien vers l’autre)/etc/rc.d/
contient des répertoires nommés rcX.d (avec X numéro de runlevel), ces répertoires contiennent un lien vers les scripts situés dans/init.d
Commandes :
# service |
Sous systemd
La configuration des services se trouve par défaut dans le(s) répertoire(s) :
/lib/systemd/system
/usr/lib/systemd/system
/etc/systemd/system/
(à partir de CentOS 7)
Commandes :
# systemctl |
Pour créer son propre service : Créer un service systemd
Passage de System V à systemd
Changement profond car il touche à l’initialisation du système d’exploitation (PID 1)
System V
Appelé UNIX System V ou System V (système “cinq”) date de janvier 1983.
Au démarrage, le programme init
du système lit le fichier /etc/inittab
, le champ initdefault
détermine le niveau de fonctionnement par défaut
Le fichier /etc/inittab
décrit l’ensemble des processus qui doivent être lancés au démarrage du système et dans d’autres circonstances (par exemple /etc/init.d/boot
, /etc/init.d/rc
, gettys
…).
Le programme init
distingue différents niveaux de fonctionnement (runlevels), chacun pouvant avoir ses propres processus à démarrer. Les niveaux de fonctionnement valides sont 0-6, ainsi que A, B et C pour des modes personnalisés.
Une entrée dans le fichier inittab
a la forme suivante :
id:niveaux:action:processus |
Les runlevels
- 0 = arrêt
- 1 = single user text mode (utile pour le dépannage du système)
- 2 = non utilisé (peut-être customisé)
- 3 = Multi-user text mode (un des plus utilisé)
- 4 = non utilisé (peut être customisé)
- 5 = multi-user graphical mode (un des plus utilisé)
- 6 = redémarrage
Systemd
Systemd est une suite logicielle qui fournit une gamme de composants système pour les systèmes d’exploitation Linux.
Le premier composant de systemd est le système d’initialisation qui offre un meilleur cadre pour la gestion des dépendances entre services, de permettre le chargement en parallèle des services au démarrage et de réduire les appels aux scripts shell. C’est une alternative à SysV init (System V)
https://fr.wikipedia.org/wiki/Systemd
Les runlevels (target)
Le système de runlevels a été remplacé par des “target”, le fonctionnement est sensiblement le même.
- Runlevel 0 =
poweroff.target
(runlevel0.target) - Runlevel 1 =
rescue.target
(runlevel1.target) - Runlevel 2 =
multi-user.target
(runlevel2.target) - Runlevel 3 =
multi-user.target
(runlevel3.target) - Runlevel 4 =
multi-user.target
(runlevel4.target) - Runlevel 5 =
graphical.target
(runlevel5.target)
Systemd dans les distributions
Red Hat et dérivés
- Red Hat Entreprise Linux depuis la version 710
- Fedora depuis la version 15 en 2011
Debian et dérivés
Debian depuis la version 8 (Jessie) en 2015
- Devuan (fork de Debian) permet d’éviter d’utiliser systemd
Ubuntu depuis la version 15.04 (Vivid Vervet) en 2015.
Autres distribution
- CentOS depuis la version 7
- OpenSUSE depuis la version 12.1 en 2011
- Arch Linux (dépôts core) et Arch Linux ARM ;
- Gentoo (via portage)
Documentation
https://linux.die.net/man/8/service
https://fr.wikipedia.org/wiki/Init#%C2%AB_init_%C2%BB_de_Unix_System_V_(SysV_init)
https://fr.wikipedia.org/wiki/systemd
https://fr.wikipedia.org/wiki/UNIX_System_V
https://lea-linux.org/documentations/Systemd
https://lea-linux.org/documentations/Admin-admin_boot-daemons