Comment utiliser l'utilitaire SystemCTL dans Linux

Comment utiliser l'utilitaire SystemCTL dans Linux
Que vous soyez un administrateur système chevronné ou un nouvel utilisateur de Linux, la gestion des services est l'une des opérations fondamentales que vous devrez effectuer. Par conséquent, avoir une bonne compréhension du fonctionnement des services et de la façon de les gérer est un grand avantage.

Ce tutoriel vous guide à travers les bases de la gestion des services dans Linux et comment utiliser SystemCTL pour gérer les services, obtenir des informations sur les unités système et obtenir des informations utiles sur l'état des services de votre système.

Qu'est-ce que SystemCTL?

SystemCTL est un utilitaire de ligne de commande Linux utilisé pour contrôler et gérer SystemD et Services. Vous pouvez considérer SystemCTL comme une interface de contrôle pour le service SystemD INIT, vous permettant de communiquer avec SystemD et d'effectuer des opérations.

SystemCTL est un successeur de l'init.Dy système D; Il contient des bibliothèques, des démons et des services publics que vous pouvez utiliser pour gérer les services dans le système Linux.

Qu'est-ce qu'un service / unité?

En langue systemd, un service ou une unité est une ressource ou un objet que Systemd est au courant et sait comment aborder.

Bien qu'il soit techniquement correct de classer une unité comme un service, dans SystemD, les unités ont tendance à être plus abstraites et souvent composées de pools de ressources, de supports de système de fichiers, de protocoles réseau, d'appareils et de services Linux natifs.

Les unités sont définies dans un fichier appelé fichier unitaire. SystemD peut gérer les fichiers unitaires à partir de n'importe quel emplacement, mais leur emplacement principal est / etc / systemd / System Directory. Les fichiers unitaires de ce répertoire sont principalement fournis par l'utilisateur. Par rapport à d'autres emplacements, le gestionnaire Systemd attribuera une priorité plus élevée aux fichiers unitaires dans le répertoire ci-dessus.

NOTE: Vous pouvez également trouver des fichiers unitaires situés dans le répertoire / lib / systemd / système, qui contient des fichiers unitaires fournis par le système et des packages installés. Assurez-vous de vérifier les deux emplacements lors de la modification d'un fichier unitaire.

Types d'unités Systemd

Les fichiers unitaires sont étiquetés avec un suffixe dans le fichier unitaire, qui donne à l'administrateur une indication de son objectif basé sur le suffixe.

Voici les fichiers unitaires trouvés dans SystemD.

  • .service - Les fichiers de l'unité de service définissent comment SystemD gère un service. Ils se terminent généralement par .Extension de service. Les fichiers de l'unité de service décrivent comment démarrer, arrêter, recharger et redémarrer un service et les dépendances requises pour gérer le service.
  • .cible - Les unités cibles fournissent des points de synchronisation vers d'autres services pendant le démarrage.
  • .tranche - Les fichiers d'unité de tranche codent les informations sur les unités Systemd Slice. Les unités de tranche font partie de l'arborescence du groupe de contrôle Linux qui permet l'allocation et la restriction des ressources aux processus associés à une tranche. Vous pouvez en savoir plus sur le contrôle des ressources SystemD ici.
  • .prise - Un fichier unitaire de socket code les informations sur le socket réseau, l'IPC ou un système de fichiers FIFO Tuffer et géré pour SystemD, que SystemD utilise pour l'activation basée sur la prise.
  • .appareil - Les configurations de l'unité de périphérique définissent une unité de périphérique exposée dans l'arborescence de périphérique SYSFS / UDEV.
  • .minuteur - Les unités de minuterie définissent une minuterie gérée et contrôlée par Systemd pour l'activation planifiée.
  • .instantané - Les fichiers d'unité d'instantané permettent le retour de l'état actuel du système après avoir apporté des modifications. Nous les créons à l'aide de la commande Systemd Snapshot.
  • .échanger - Les unités d'échange codent des informations sur l'espace d'échange, telles que le nom de l'appareil ou le chemin de l'espace d'échange.
  • .monter - Les fichiers d'unité de montage codent les informations sur les points de montage dans le système géré par SystemD.
  • .automatique - Ce sont des fichiers unitaires qui définissent les points de montage qui sont automatiquement montés.

Ce sont quelques-uns des fichiers unitaires gérés par Systemd. En règle générale, ces fichiers unitaires dans un système fonctionnent en étroite collaboration pour gérer le système, les services, les démons et autres ressources du système.

NOTE: Il y a d'autres fichiers unitaires, mais vous n'aurez pas à vous soucier beaucoup d'eux, sauf si vous plongez profondément dans le noyau.

Répertoriez les fichiers unitaires

Pour afficher les fichiers unitaires disponibles dans le système, vous pouvez répertorier les fichiers dans / lib / systemd / système ou / etc / systemd / système.

Heureusement, Systemd a une commande pour cela. Nous pouvons exécuter la commande:

$ sudo systemctl liste-unités

L'exécution de cette commande affichera les unités disponibles dans le système.

Pour filtrer uniquement des fichiers unitaires spécifiques, vous pouvez utiliser l'option -Type = [Unit-Type]. Par exemple, pour afficher les fichiers d'unités de service, nous utilisons la commande:

$ sudo systemctl list-units --type = service

Voici un exemple de sortie:

La sortie de la commande SystemCTL List-Units utilise une méthode organisationnelle basée sur une colonne.

Voici ce que chaque colonne représente.

  • UNITÉ - La première colonne est l'unité.'Cela montre le nom du fichier unitaire.
  • CHARGER - Cela montre si la définition de l'unité est chargée correctement.
  • ACTIF - Cela montre l'état d'activation de haut niveau.
  • SOUS - Cela montre l'état d'activation de bas niveau. Les valeurs de cette colonne dépendront du type d'unité.
  • DESCRIPTION - La description du fichier unitaire.

Vous pouvez également filtrer les unités par leurs États. Par exemple, pour afficher uniquement les unités inactives, utilisez la commande:

$ sudo systemctl list-units -state = inactive

Ce qui précède montre des unités inactives (ou mortes). La plupart des unités de cet état sont démarrées avant les sessions utilisateur; Ils comprennent Plymouth, le service d'activations de réseau, le mode de sauvetage, la base de données manuelle et bien d'autres.

Pour afficher tous les fichiers unitaires du système, vous pouvez ajouter l'option de la commande lister-Units.

$ sudo systemctl list-Units-tout

Vous pouvez faire défiler la liste des unités disponibles en appuyant sur la touche d'espace.

Comment afficher le contenu des fichiers unitaires

Pour afficher les entrées et la configuration dans un fichier unitaire, vous pouvez dire à Systemd d'appeler la commande Cat et le nom de l'unité.

Par exemple, pour montrer le contenu de l'unité de Plymouth, utilisez la commande

$ sudo systemctl Cat Plymouth

Cette commande videra le contenu du fichier comme indiqué ci-dessous:

Comment modifier les fichiers unitaires

Pour éditer des fichiers unitaires, vous pouvez utiliser la commande systemd suivie de l'option d'édition et du nom de l'unité.

$ sudo systemctl modifier Plymouth

La commande lancera l'éditeur de texte nano, vous permettant de modifier le fichier unitaire spécifié.

NOTE: Sauf si nécessaire, ÉVITER Modification des fichiers unitaires critiques provisionnés par le système.

Gestion des services avec SystemCTL

Les fichiers unitaires qui se terminent avec .Le service est facile à gérer en utilisant l'utilitaire SystemD, SystemCTL. Voici les opérations que nous pouvons effectuer avec SystemCTL.

Comment démarrer les services

Pour démarrer un service avec SystemCTL, nous appelons la commande:

$ sudo systemctl start nginx.service

Dans la commande ci-dessus, nous avons dit à Systemd de démarrer le service Nginx en utilisant le nginx.Fichier de l'unité de service.

Passer le suffixe complet de fichiers unitaires avec SystemCTL n'est pas une exigence. Vous pouvez utiliser le nom du service, tel que:

$ sudo systemctl start nginx

Dans la plupart des unités de service, il n'y a pas de sortie si le service commence avec succès. Cependant, si une erreur se produit, SystemD affichera l'erreur et le code d'état.

Comment arrêter les services

Pour arrêter un service, utilisez l'argument Stop dans la commande SystemCTL

$ sudo systemctl stop nginx

De même, l'opération d'arrêt ne fournit pas de sortie après une réussite.

Comment recharger les services

Le rechargement d'un service fonctionne en arrêtant les processus des travailleurs, en appliquant des modifications de configuration et en redémarrant les processus de travail. Qui n'arrête pas le service réel lui-même.

Cette fonctionnalité peut être utile lorsque les services doivent être en ligne, comme c'est le cas avec les bases de données et les serveurs Web.

Pour recharger un service dans SystemCTL, nous utilisons la commande:

$ sudo systemctl recharger nginx

Comment redémarrer les services

D'un autre côté, le redémarrage fera arrêter le service et les processus des travailleurs et les redémarrer. Le processus de redémarrage peut provoquer des temps d'arrêt, ce qui le rend très applicable lors du dépannage.

Pour redémarrer un service, utilisez la commande:

$ sudo systemctl redémarrer nginx

Comment activer les services au démarrage

Si vous souhaitez qu'un service spécifique s'exécute pendant le démarrage du système, vous pouvez utiliser la commande Activer.

Par exemple:

$ sudo systemctl activer nginx

La commande ci-dessus, cependant, n'attire pas le service lors d'une session active. Pour ce faire, ajoutez le drapeau -v.

$ sudo systemctl activer nginx --nain

Si vous souhaitez activer un service personnalisé que vous avez créé, assurez-vous que SystemD peut accéder au fichier unitaire. Ne stockez pas le fichier unitaire dans / répertoire domestique. Pour les fichiers unitaires personnalisés, assurez-vous de les placer dans / etc / systemd / système.

Comment vérifier l'état du service

Pour vérifier l'état d'un service dans SystemD, utilisez la commande d'état:

$ sudo systemctl status nginx

Cette commande affichera l'état actuel du service. L'image ci-dessous montre un service Nginx actif

Si un service est arrêté, vous obtiendrez une sortie similaire à celle ci-dessous:

Conclusion

Dans ce guide, nous avons discuté des concepts de fichiers systemd et unit. SystemD est un élément essentiel de Linux, et les principales distributions Linux ont maintenant adopté son utilisation. Par conséquent, savoir administrer et gérer peut être très avantageux.