System V et systemd

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 runlevels id: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
# service NomService {start|stop|restart|reload|status}
# /etc/init.d/nom_service {start|stop|restart|reload|status}

# Chkconfig NomService // (sous CentOS < 7)

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
# systemctl -t help
# systemctl {start|restart|stop|reload|enable|disable|mask|kill} NomService.service

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

> Partager <