La gestion d'un service ou d'un groupe de services dans un PC Linux moderne peut être un frein, c'est-à-dire si vous n'êtes pas sûr de ce que vous faites. Heureusement pour vous, Ubuntu Systemctl vous permet de gérer les services sur un PC Linux.
Dans ce tutoriel, vous apprendrez à gérer les services Systemd sur Ubuntu PC en exécutant différents systemctl
commandes.
Prêt? Il est temps de creuser !
Prérequis
Ce tutoriel sera une démonstration pratique mais ne nécessite pas d'outils spéciaux, tant que vous êtes sur Ubuntu 16 ou une version supérieure, vous êtes prêt à partir. Ce tutoriel utilise la version Ubuntu 20.04.3 LTS pour les démos.
Qu'est-ce qu'Ubuntu Systemctl ?
Avant d'exécuter les commandes Ubuntu systemctl, apprenez d'abord ce qu'est Systemctl. Systemctl est un utilitaire de ligne de commande pour contrôler et gérer les services systemd et système.
En un mot, Systemctl est un panneau de contrôle ou un gestionnaire de services pour le système d'initialisation systemd pour 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 des services.
Pour gérer efficacement les services, connaissez les différents états de service comme suit :
- Activé – indique qu'un service est configuré pour démarrer au démarrage du système.
- Désactivé – indique qu'un service est configuré pour ne pas démarrer au démarrage du système.
- Actif – indique qu'un service est actuellement en cours d'exécution.
- Inactif - indique qu'un service n'est pas en cours d'exécution mais peut démarrer lorsqu'une application tente de démarrer ce service.
Répertorier tous les services
Maintenant que vous connaissez les différents états des services, vous souhaitez peut-être voir une liste de tous les services sur votre PC Ubuntu. La liste de tous les services fournit quelques informations qui vous préparent à la gestion des services.
Ouvrez votre terminal et exécutez la commande ci-dessous pour lister toutes les unités de service (list-units
) (actif, en cours d'exécution, abandonné ou en échec) avec le service défini comme type d'unité (--type=service
).
systemctl list-units --type=service
Choisissez l'un des services de la liste que vous souhaitez gérer plus tard dans ce didacticiel et notez l'UNIT nom (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.
Au fait, voici un bon guide sur Linux Shell Scripting.
Répertorier les services avec un état spécifique
Au lieu d'énumérer tous les services, vous souhaitez peut-être réduire la liste des services. Si oui, ajouter le --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 fermé.
systemctl list-units --type=service --state=active
De même, pour répertorier uniquement les services fermés ou en cours d'exécution, modifiez la valeur d'état de active
soit running
ou exited
, comme indiqué dans les commandes ci-dessous :
systemctl --type=service --state=running
systemctl --type=service --state=exited
Répertorier les services activés
En plus de répertorier les services actifs, en cours d'exécution et abandonnés, vous pouvez également répertorier les services activés et désactivés en canalisant le grep
commande.
Exécutez l'une des commandes ci-dessous pour répertorier (list-unit-files
) disabled
ou enabled
services (--type=service
).
## Lists all Enabled services
systemctl list-unit-files --type=service | grep enabled
## Lists all Disabled services
systemctl list-unit-files --type=service | grep disabled
Prenez note d'un service activé, comme indiqué ci-dessous, car vous en aurez besoin plus tard pour désactiver un service, mais ce didacticiel utilise le acpid.service pour démo. L'acpid est un démon extensible qui prend en charge les événements ACPI (Advanced Configuration and Power Interface).
Répertorier les propriétés du service
Outre la liste des services, vous pouvez 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 show
un service (acpid.service
) propriétés dans un format clé=valeur.
systemctl show acpid.service
Maintenant, si vous recherchez uniquement une propriété de service spécifique, vous pouvez passer le -p
drapeau avec le nom de la propriété.
Exécutez la commande ci-dessous pour show
un service (acpid.service
) MainPID
propriété.
systemctl show acpid.service -p MainPID
Gestion d'un service spécifique
Étant donné que les bases des services de référencement sont à l'écart, il est temps de gérer un service spécifique (unique) en exécutant le systemctl stop
et start
commandes.
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 "Liste de tous les services". Mais avant d'arrêter ou de démarrer un service, vous devez d'abord vérifier l'état du service.
Exécutez la commande ci-dessous sur un terminal pour afficher le apache2
les informations détaillées du service comme son status
.
systemctl status apache2
Ci-dessous, vous pouvez voir que le service apache2 est actif et en cours d'exécution.
La saisie du mot de passe sudo n'est pas nécessaire 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 ajouter la commande sudo et entrer le mot de passe sudo.
Arrêter un service
Vous souhaitez peut-être arrêter un service qui a été laissé en suspens et qui fonctionne toujours en arrière-plan. Dans ce cas, le systemctl stop
commande est ce dont vous avez besoin. Exécutez le systemctl
commande ci-dessous pour arrêter le apache2
services.
sudo systemctl stop 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 les services sshd et apache2 en une seule fois.
Exécutez maintenant le systemctl status
commande comme vous l'avez fait précédemment pour vérifier si le service apache2 s'est arrêté.
systemctl status apache2
Vous pouvez voir ci-dessous que le statut du service apache2 est passé à inactif (mort) , qui indique le service arrêté.
Démarrer un service
Maintenant, comment démarrez-vous 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 le systemctl start
commande. Exécutez la commande ci-dessous pour start
le apache2
services.
sudo systemctl start apache2
Comme pour arrêter plusieurs services, vous pouvez également démarrer plusieurs services dans une seule ligne de commande. Remplacez le
stop
commande avec lestart
commande comme celle-ci :sudo systemctl start sshd apache2
Exécutez maintenant le systemctl status
commande une fois de plus pour vérifier si le apache2
service est en cours d'exécution.
systemctl status apache2
Si vous voyez le message actif (en cours d'exécution) statut, comme indiqué ci-dessous, 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 au préalable. Si oui, optez pour le
systemctl restart
commande à la place, comme ceci :sudo systemctl restart apache2
Activer ou désactiver un service
Il y a peut-être un service particulier que vous préférez démarrer ou empêcher de démarrer au démarrage du système. Si c'est le cas, exécutez le systemctl
enable
ou disable
commande est la meilleure approche.
Le enable
la sous-commande vous permet de configurer les paramètres de démarrage par défaut sur votre système, tandis que le disable
la sous-commande empêche un service de s'exécuter au démarrage du système.
Exécutez le systemctl
commande ci-dessous en disable
le service (acpid.service
) que vous avez noté dans la section "Liste des services activés". Entrez votre mot de passe sudo pour autoriser l'exécution de la commande.
sudo systemctl disable acpid.service
Désormais, puisque acpid.service prend en charge la configuration et la gestion de l'alimentation dirigées par le système d'exploitation (OSPM); vous devez le réactiver. La commande pour activer le service est similaire à la désactivation d'un service.
Exécutez le systemctl
commande ci-dessous pour enable
acpid.service
. Cette commande réenregistre le service aux paramètres de démarrage par défaut de votre système.
sudo systemctl enable acpid.service
Conclusion
Dans ce tutoriel, vous avez réalisé à quelle vitesse vous pouvez arrêter, démarrer ou redémarrer des services en exécutant Ubuntu systemctl
commandes. Vous avez également appris que le systemctl
La commande vous permet de gérer non seulement un mais plusieurs services simultanément.
Avec ces nouvelles connaissances, pourquoi ne pas automatiser le contrôle des services dans votre système Ubuntu ?