Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Linux et Mise en réseau Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Le gestionnaire de systèmes et de services par défaut de la plupart des distributions Linux est désormais systemd

Le processus systemd remplacez l'init SysV. Il s'exécute en tant que premier processus après le démarrage du noyau et est chargé d'amener l'hôte Linux à l'état où il peut être utilisé. Il est responsable du démarrage et de la gestion des services, du montage des systèmes de fichiers, de la gestion du matériel, de la génération de l'invite de connexion et de bien d'autres choses encore

L'un des principaux avantages par rapport à SysV est que systemd démarre autant de services que possible en parallèle, ce qui accélère le processus de démarrage et fait apparaître l'écran de connexion plus rapidement

Unités

Les éléments gérés par systemd sont appelés unités. Les fichiers d'unités sont situés dans /lib/systemd/system

Unités de service

Pour la gestion des services, les unités cibles sont les unités de service, dont les fichiers d'unité ont un suffixe .service

Gérer les services systemd

La commande permettant de gérer les unités systemd est systemctl

Démarrage et arrêt des services

Pour démarrer un service systemd, utilisez la commande systemctl start

sudo systemctl start nom.service

Vous pouvez laisser le suffixe .service. Par exemple, pour démarrer le serveur apache sur Ubuntu

$ sudo systemctl start apache2

Pour arrêter un service en cours d'exécution

$ sudo systemctl stop nom.service

Ainsi, pour arrêter le serveur apache sur Ubuntu

$ sudo systemctl stop apache2

Redémarrage et rechargement des services

Pour redémarrer un service en cours d'exécution, utilisez la commande restart

$ sudo systemctl restart nom.service

Et lorsque le seul rechargement du fichier de configuration est nécessaire

$ sudo systemctl reload nom.service

Activation et désactivation des services

Si vous souhaitez qu'un service démarre automatiquement au démarrage du système, utilisez la commande enable

sudo systemctl enable nom.service

Pour empêcher un service de démarrer au démarrage du système, utilisez la commande enable : $ sudo systemctl enable name.service

$ sudo systemctl disable name.service

La désactivation n'arrête pas un service en cours d'exécution

Affichage de l'état d'un service

Pour afficher des informations sur un service
$ sudo

 systemctl status nom.service

Cela vous montrera l'état du service et les premières lignes du fichier journal. Ainsi, lorsque le service est en cours d'exécution, la sortie de

sudo systemctl status apache2

est

apache2.service - The Apache HTTP Server
 Loaded : loaded (/lib/systemd/system/apache2.service ; enabled ; vendor preset : enabled)
 Drop-In : /lib/systemd/system/apache2.service.d
 └─apache2-systemd.conf
 Active : active (running) since Tue 2020-05-19 22:11:36 UTC ; 4 days ago
 Process : 116002 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
Main PID : 104165 (apache2)
 Tasks : 55 (limit : 1024)
 CGroup : /system.slice/apache2.service
 ├─104165 /usr/sbin/apache2 -k start
 ├─116006 /usr/sbin/apache2 -k start
 └─116007 /usr/sbin/apache2 -k start

May 19 22:11:36 ubuntu18 systemd<x><x><x><x>[1]</x></x></x></x>: Démarrage du serveur HTTP Apache...
May 19 22:11:36 ubuntu18 systemd<x><x><x><x>[1]</x></x></x></x>: A démarré le serveur HTTP Apache.
May 21 06:25:01 ubuntu18 systemd<x><x><x><x>[1]</x></x></x></x>: Rechargement du serveur HTTP Apache.
May 21 06:25:01 ubuntu18 systemd<x><x><x><x>[1</x></x></x></x>] : Recharge le serveur HTTP Apache.
May 22 06:25:01 ubuntu18 systemd<x><x><x><x>[1</x></x></x></x>] : Rechargement du serveur HTTP Apache

Pour vérifier si un service est actif

sudo systemctl is-active nom.service

Ainsi, lorsque le service apache2 est en cours d'exécution, la sortie de la commande systemctl is-active est la suivante

$ sudo systemctl is-active apache2
active

Pour vérifier si un service est activé

$ sudo systemctl is-enabled nom.service

Visualisation de l'état du système

Toutes les commandes que vous avez vues jusqu'à présent sont utilisées pour gérer un seul service. Lorsque vous souhaitez avoir une vue d'ensemble de l'état du système, utilisez les commandes suivantes

Pour voir tous les types d'unités

sudo systemctl -t help
Types d'unités disponibles :
service
socket
target
device
mount
automount
swap
timer
path
slice
scope

Pour lister toutes les unités installées, utilisez list-unit-files

sudo systemctl list-unit-files
UNITÉ FICHIER ETAT
proc-sys-fs-binfmt_misc.automount static
-.mount generated
boot-efi.mount generated
dev-hugepages.mount static
dev-mqueue.mount static
mnt.mount generated
proc-sys-fs-binfmt_misc.mount static
sys-fs-fuse-connections.mount static
sys-kernel-config.mount static

sys-kernel-debug

.mount static
acpid.path enabled
apport-autoreport.path enabled
systemd-ask-password-console.path static
systemd-ask-password-plymouth.path static
systemd-ask-password-wall.path static
session-161.scope transient
accounts-daemon.service enabled

La sortie ne comporte que deux colonnes : Unit File et State. L'état est généralement activé, désactivé, statique ou masqué

  • Statique: Cela signifie que l'unité ne peut pas être activée, qu'elle effectue une action unique ou qu'elle dépend d'une autre unité et qu'elle ne peut pas être exécutée seule.
  • Masquée : Une unité répertoriée comme masquée signifie qu'elle ne peut pas être démarrée, car elle est liée à /dev/null. C'est ce qu'on appelle masquer l'unité. Cela empêche le service d'être démarré, manuellement ou automatiquement.

Liste de tous les services installés

La commande systemctl list-unit-files avec le filtre -t ou -type service affiche uniquement l'état des services installés

sudo systemctl list-unit-files -t service
UNIT FILE STATE
accounts-daemon.service enabled
acpid.service disabled
apache-htcacheclean.service disabled
apache-htcacheclean@.service disabled
apache2.service enabled
apache2@.service disabled
apparmor.service enabled
apport-autoreport.service static
apport-forward@.service statique
apport.service généré

apt-daily-upgrade

.service statique

apt-quotidien

.service statique
atd.service activé
autovt@.service activé
blk-availability.service activé
bootlogd.service masqué
bootlogs.service masqué

Pour voir toutes les unités de service actives, utilisez list-units avec le filtre -t service

sudo systemctl list-units -t service
UNIT LOAD ACTIVE SUB DESCRIPTION
 accounts-daemon.service loaded active running Accounts Service
 apache2.service loaded active running The Apache HTTP Server
 apparmor.service loaded active exited AppArmor initialization
 apport.service loaded active exited LSB : automatic crash report generation
 atd.service loaded active running Deferred execution scheduler
 blk-availability.service loaded active exited Disponibilité des périphériques de bloc
 cloud-config.service loaded active exited Appliquer les paramètres spécifiés dans cloud-con
 cloud-final.service loaded active exited Exécuter les scripts utilisateur/final du nuage
 cloud-init-local.service loaded active exited Initial cloud-init job (pre-networking)
 cloud-init.service loaded active exited Initial cloud-init job (metadata service
 console-setup.service loaded active exited Set console font and keymap
 cron.service loaded active running Regular background program processing dae

La sortie comporte les colonnes suivantes

  • UNITÉ: Le nom de l'unité de service systemd
  • CHARGER: Indique si la définition de l'unité a été correctement lue et chargée
  • ACTIF: Indique si l'unité est active.
  • SUB: état d'activation de bas niveau de l'unité, donnant des informations plus détaillées sur l'unité. Cet état varie selon le type d'unité.
  • DESCRIPTION: Description de l'unité de service.

Conclusion

J'espère que cela vous a donné une idée de l'utilisation de systemctl pour gérer les services sous Linux. Si vous souhaitez en savoir plus, vous pouvez consulter ce cours Linux Mastery.

  • Vijay Khurana
    Auteur
Merci à nos sponsors
D'autres bonnes lectures sur Linux
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus