Gérer un service ou un groupe de services sur un PC Linux moderne peut être fastidieux, c’est-à-dire si vous n’êtes pas sûr de ce que vous faites. Heureusement pour vous, Ubuntu Systemctl est là pour vous aider à gérer les services sur un PC Linux.
Dans ce tutoriel, vous apprendrez comment gérer les services Systemd sur un PC Ubuntu en exécutant différentes commandes systemctl
.
Prêt ? Il est temps de plonger !
Prérequis
Ce tutoriel sera une démonstration pratique mais ne nécessite pas d’outils spéciaux. Tant que vous utilisez Ubuntu 16 ou une version ultérieure, vous êtes prêt à partir. Ce tutoriel utilise la version 20.04.3 LTS d’Ubuntu pour les démonstrations.
Qu’est-ce qu’Ubuntu Systemctl ?
Avant d’exécuter des commandes systemctl sur Ubuntu, familiarisez-vous d’abord avec ce qu’est Systemctl. Systemctl est un utilitaire en ligne de commande pour contrôler et gérer systemd ainsi que les services système.
En résumé, Systemctl est un panneau de contrôle ou un gestionnaire de services pour le système init de systemd afin d’initialiser les composants après le démarrage du noyau Linux. Systemctl est une collection de bibliothèques, de démons et d’utilitaires que vous pouvez utiliser pour gérer les services.
Pour gérer efficacement les services, familiarisez-vous avec les différents états de service suivants :
- Activé – indique qu’un service est configuré pour démarrer lorsque le système démarre.
- Désactivé – indique qu’un service est configuré pour ne pas démarrer lorsque le système démarre.
- Actif – indique qu’un service est actuellement en cours d’exécution.
- Inactif – indique qu’un service n’est pas actuellement en cours d’exécution mais peut démarrer lorsque certaines applications tentent de démarrer ce service.
Liste de tous les services
Maintenant que vous connaissez les différents états des services, peut-être voulez-vous voir une liste de tous les services sur votre PC Ubuntu. La liste de tous les services fournit quelques informations qui vous préparent à gérer les services.
Ouvrez votre terminal et exécutez la commande ci-dessous pour lister toutes les unités de service (list-units
) (actives, en cours d’exécution, terminées ou en échec) avec le type de service défini en tant qu’unité (--type=service
).
Choisissez l’un des services de la liste que vous souhaitez gérer plus tard dans ce tutoriel et notez le nom de l’UNITÉ (par exemple, apache2). Appuyez sur la barre d’espace pour faire défiler vers le bas, ou appuyez sur la touche « Q » pour quitter la commande.
Soit dit en passant, voici un bon guide sur le Scripting Shell Linux.

Liste des services avec un état spécifique
Au lieu de répertorier tous les services, vous souhaitez peut-être restreindre la liste des services. Si tel est le cas, l’ajout du paramètre --state
fera l’affaire, car il filtre les services avec l’état spécifique que vous spécifiez.
Exécutez l’une des commandes ci-dessous pour répertorier tous les services actifs (--type=service --state=active
), à la fois en cours d’exécution et arrêtés.

De même, pour répertorier uniquement les services arrêtés ou en cours d’exécution, modifiez la valeur de l’état de actif
à en cours d'exécution
ou arrêté
, comme indiqué dans les commandes ci-dessous:


Liste des services activés
En plus de répertorier les services actifs, en cours d’exécution et arrêtés, vous pouvez également lister les services activés et désactivés en utilisant la commande grep
.
Exécutez l’une des commandes ci-dessous pour répertorier (list-unit-files
) les services désactivés
ou activés
(--type=service
).
Prenez note d’un service activé, comme indiqué ci-dessous, car vous en aurez besoin plus tard pour désactiver un service, mais ce tutoriel utilise le service acpid.service à des fins de démonstration. Acpid est un démon extensible qui prend en charge les événements du Advanced Configuration and Power Interface (ACPI).

Affichage des propriétés du service
En plus de répertorier les services, vous voudrez peut-être vérifier les propriétés d’un service. Avoir un aperçu des propriétés du service est pratique pour le dépannage, les paramètres du processus ou le comportement de redémarrage.
Exécutez la commande ci-dessous pour afficher
les propriétés d’un service (acpid.service
) au format clé=valeur.

Maintenant, si vous ne recherchez qu’une propriété spécifique du service, vous pouvez utiliser le drapeau -p
avec le nom de la propriété.
Exécutez la commande ci-dessous pour afficher
la propriété MainPID
d’un service (acpid.service
).

Gestion d’un service spécifique
Maintenant que les bases de la liste des services sont établies, il est temps de gérer un service spécifique (unique) en exécutant les commandes systemctl stop
et start
.
Le service Apache (apache2) est utilisé pour les démonstrations suivantes, mais vous pouvez librement gérer le service que vous avez noté dans la section « Listing All Services ». Avant d’arrêter ou de démarrer un service, vous devez d’abord vérifier l’état du service.
Exécutez la commande suivante dans un terminal pour afficher les informations détaillées sur le service apache2
telles que son status
.
Ci-dessous, vous pouvez voir que le service apache2 est actif et en cours d’exécution.

Il n’est pas nécessaire d’entrer le mot de passe sudo pour afficher l’état du service car vous ne modifiez pas l’état du service. Mais si vous démarrez, arrêtez ou redémarrez un service, vous devez préfixer la commande sudo et entrer le mot de passe sudo.
Arrêt d’un service
Peut-être souhaitez-vous arrêter un service qui est resté en suspens et qui continue de s’exécuter en arrière-plan. Dans ce cas, la commande systemctl stop
est ce dont vous avez besoin. Exécutez la commande systemctl
ci-dessous pour arrêter le service apache2
.
Si vous préférez arrêter plusieurs services simultanément, spécifiez chaque service séparé par un espace, comme ceci :
sudo systemctl stop sshd apache2
. Dans cette commande, vous arrêterez à la fois les services sshd et apache2 en une seule fois.
Maintenant, exécutez la commande systemctl status
comme vous l’avez fait précédemment pour vérifier si le service apache2 s’est arrêté.
Vous pouvez voir ci-dessous que l’état du service apache2 est passé à inactive (dead), ce qui indique que le service s’est arrêté.

Démarrage d’un service
Maintenant, comment démarrer un service si vous remarquez qu’il ne fonctionne pas du tout ? Vous exécutez une commande similaire à l’arrêt du service, qui est la commande systemctl start
. Exécutez la commande ci-dessous pour démarrer
le service apache2
.
Tout comme pour l’arrêt de plusieurs services, vous pouvez également démarrer plusieurs services en une seule ligne de commande. Remplacez la commande
stop
par la commandestart
comme ceci :sudo systemctl start sshd apache2
Exécutez maintenant la commande systemctl status
une fois de plus pour vérifier si le service apache2
est en cours d’exécution.
Si vous voyez le statut actif (en cours d’exécution), comme indiqué ci-dessous, alors vous êtes prêt car le service est de nouveau opérationnel.

Si vous préférez redémarrer le service immédiatement sans avoir à l’arrêter d’abord. Si c’est le cas, optez pour la commande
systemctl restart
à la place, comme ceci :sudo systemctl restart apache2
Activer ou Désactiver un Service
Peut-être qu’il y a un service particulier que vous préférez soit démarrer soit empêcher de démarrer au démarrage du système. Si tel est le cas, l’exécution de la commande systemctl
enable
ou disable
est la meilleure approche.
La sous-commande enable
vous permet de configurer les paramètres de démarrage par défaut sur votre système, tandis que la sous-commande disable
empêche un service de s’exécuter au démarrage du système.
Exécutez la commande systemctl
ci-dessous pour désactiver
le service (acpid.service
) que vous avez noté dans la section « Listing Enabled Services ». Entrez votre mot de passe sudo pour autoriser l’exécution de la commande.

Maintenant, étant donné que le service acpid.service prend en charge la configuration dirigée par le système d’exploitation et la gestion de l’alimentation (OSPM), vous devez le réactiver. La commande pour activer le service est similaire à celle pour désactiver un service.
Exécutez la commande systemctl
ci-dessous pour activer
acpid.service
. Cette commande enregistre le service avec les paramètres de démarrage par défaut sur votre système.

Conclusion
Dans ce tutoriel, vous avez réalisé à quelle vitesse vous pouvez arrêter, démarrer ou redémarrer des services en exécutant des commandes systemctl
sous Ubuntu. Vous avez également appris que la commande systemctl
vous permet de gérer non seulement un, mais plusieurs services simultanément.
Avec cette nouvelle connaissance, pourquoi ne pas automatiser le contrôle des services dans votre système Ubuntu ?