Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Systemctl » : différence entre les versions

De The Linux Craftsman
Ligne 20 : Ligne 20 :


= Maintenant, que faire ? =
= Maintenant, que faire ? =
Ci-dessous un tableau
Ci-dessous un tableau qui fait le lien entre les anciennes et les nouvelles commandes :
{|class="wikitable" width="85%"
! SysVInit!! SystemD !! Description
|-
||service $daemon start
||systemctl start $daemon.service
||Permet de démarrer $daemon
|-
||service $daemon  stop
||systemctl stop daemon.service
||Permet de stopper $daemon
|-
||service $daemon restart
||systemctl restart $daemon.service
||Permet de redémarrer $daemon
|-
||service $daemon reload
||systemctl reload $daemon.service
||Permet de recharger la configuration de $daemon
|-
||X
||systemctl reload-or-restart $daemon
||Permet de recharger ou redémarrer $daemon
|-
||service $daemon status
||systemctl status $daemon
||Affiche des informations sur le service $daemon
|-
||chkconfig $daemon on
||systemctl enable $daemon.service
||Permet d'enregistrer $daemon au démarrage du système
|-
||chkconfig $daemon off
||systemctl disable $daemon.service
||Permet d'effacer $daemon du démarrage du système
|-
||chkconfig $daemon off
||systemctl disable $daemon.service
||Permet d'effacer $daemon du démarrage du système
|}

Version du 27 décembre 2017 à 17:49

Introduction

Déni, Colère, Expression, Dépression, Acceptation

Nous étions habitués aux commandes service, chkconfig ou encore init mais maintenant c'est de l'histoire ancienne puisque SysVInit à été remplacé par SystemD, le nouveau gestionnaire de démarrage écrit par RedHat.

On peut se demander pourquoi on change un système qui fonctionne ?

La raison est simple : SysVInit est lent, mal architecturé, possède des faiblesses. C'en était trop pour certain et c'est pourquoi, d'une architecture modulaire (chacun sa tâche), nous sommes passé à une architecture centralisée (une seule commande). Ce nouveau moteur est écrit en C et permet un démarrage parallélisé des processus plutôt qu'en série. Les développeur d'Ubuntu avaient commencé le travail en écrivant UStart mais n'étaient pas allé jusqu'au bout des choses !

Ci-dessous un dessin expliquant comment se déroule le démarrage du système :

Explication de texte

On voit clairement le gain de temps au démarrage du système ! Une question vient à l'esprit, comment est-ce possible ? La réponse se trouve dans le type de socket utilisées pour la communication entres les services : on est passé de socket AF_INET, orienté réseaux, à des socket AF_UNIX, orientée système.

Le premier type de socket, AF_INET, permet des réseau entre les services surtout utilisée dans les systèmes distribués et plus vraiment d'actualité sur un système centralisé. Ce qui explique cette migration vers des sockets AF_UNIX, qui sont des sockets système, c'est à dire un fichier.

Les sockets AF_UNIX ne nécessitent pas la présence d'un programme pour démarrer et sont donc créées par le système d'exploitation au démarrage. Les services démarrent en parallèle et se branchent à la socket quand ils sont prêt.

Maintenant, que faire ?

Ci-dessous un tableau qui fait le lien entre les anciennes et les nouvelles commandes :

SysVInit SystemD Description
service $daemon start systemctl start $daemon.service Permet de démarrer $daemon
service $daemon stop systemctl stop daemon.service Permet de stopper $daemon
service $daemon restart systemctl restart $daemon.service Permet de redémarrer $daemon
service $daemon reload systemctl reload $daemon.service Permet de recharger la configuration de $daemon
X systemctl reload-or-restart $daemon Permet de recharger ou redémarrer $daemon
service $daemon status systemctl status $daemon Affiche des informations sur le service $daemon
chkconfig $daemon on systemctl enable $daemon.service Permet d'enregistrer $daemon au démarrage du système
chkconfig $daemon off systemctl disable $daemon.service Permet d'effacer $daemon du démarrage du système
chkconfig $daemon off systemctl disable $daemon.service Permet d'effacer $daemon du démarrage du système