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.
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.
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.