GNU/Linux >> Tutoriels Linux >  >> Linux

Manière correcte d'utiliser Ubuntu systemctl pour contrôler Systemd

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 le start 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 ?


Linux
  1. Gérer le démarrage à l'aide de systemd

  2. Utilisation de la commande systemctl pour gérer les unités systemd

  3. Comment utiliser la commande Systemctl pour gérer les services Systemd

  4. Comment puis-je configurer un service systemd pour qu'il redémarre périodiquement ?

  5. Comment supprimer les services systemd

Comment activer ou désactiver les services dans Ubuntu Systemd/Upstart

Liste des services sur Ubuntu 20.04

Utiliser les fonctionnalités de systemd pour sécuriser les services

Comment redémarrer les services sur la ligne de commande Ubuntu

Comment configurer l'exécution automatique d'un script Python à l'aide de Systemd

Ubuntu - Démarrer, arrêter, redémarrer les services