systemctl : 12 commandes qui maîtrisent Linux 🚀
La commande systemctl possède plusieurs fonctionnalités qui sont souvent négligées. En plus de démarrer et d'arrêter les services sous Linux, vous pouvez également répertorier les services installés et vérifier leur état. Faisons un petit tour d'horizon ! 🚀
Qu'est-ce que la commande Systemctl ?
La commande systemctl est l'outil de gestion central du système d'initialisation systemd, principalement connu comme l'outil utilisé pour démarrer et arrêter les services. Mais il y a bien plus encore, comme en témoigne son page de manuel qui compte plus de 1600 lignes. 📖
Étant donné que systemctl est un outil de gestion et non pas seulement un lanceur de services, vous pouvez l'utiliser pour accéder à des informations utiles sur votre système et ses services systemd. 💻
La plupart des distributions Linux ont adopté systemd, mais certaines ont choisi de conserver le système d'initialisation traditionnel SystemV. Si vous n'êtes pas sûr de celui utilisé par votre distribution, il est facile de le savoir. Nous utiliserons la commande stat pour consulter le fichier init.
statistique /sbin/init

Le fichier exécutable /sbin/init est le premier processus lancé dans les distributions basées sur SystemV. Dans les distributions basées sur systemd, un lien symbolique portant ce nom pointe vers systemd.
La première ligne de sortie nous montre que sur cette machine de test Ubuntu, /sbin/init est un lien symbolique vers le fichier /lib/systemd/systemd. De toute évidence, cette installation Linux utilise systemd. S'il s'agissait d'une distribution basée sur SystemV, la ligne ne contiendrait que « Fichier : /sbin/init ».
Interrogation des services avec systemctl
Les services sont définis dans des fichiers d'unité, et vous verrez le mot unité dispersé dans les options systemctl. À titre d’exemple, nous pouvons obtenir une liste de services avec la commande list-units en utilisant l’option –type.
systemctl liste-unités --type=service

La sortie est affichée dans la visionneuse de fichiers less, vous permettant de naviguer et d'utiliser la touche / pour rechercher.
- Unité: Le nom du fichier d'unité.
- Porter: Si le fichier d'unité de service a été lu en mémoire sans erreurs de syntaxe, cette colonne contiendra « chargé ». Cela ne signifie pas que le service est actif.
- Actif:Un aperçu indiquant si un service est actif. Il se peut qu'un service actif ne soit pas en cours d'exécution.
- Sous:Une vue plus détaillée indiquant si un service est en cours d'exécution. Par exemple, un service actif peut être planifié pour une minuterie et peut avoir quitté sa dernière exécution.
- Description:Une ligne de texte destinée à identifier ou à décrire le service.
L'affichage inclut uniquement les services actifs. Pour voir tous les services, nous devons inclure l’option –all.
systemctl liste-unités --toutes --type=service

Si la visualisation de tout est écrasante, nous pouvons filtrer la sortie avec l’option –state.
systemctl liste-unités --type=service --état=en cours d'exécution

L'option d'état acceptera les options en cours d'exécution, arrêtées, activées, désactivées et en échec.
Pour vous concentrer sur les services défaillants, utilisez l’option –failed.
systemctl liste-unités --échec

Il n'y a aucun lecteur défectueux sur cet ordinateur.
Si vous voyez des services défaillants, utilisez l’option list-dependencies pour vérifier les dépendances non satisfaites.
systemctl liste-dépendances sshd.service

Les dépendances ont un cercle à code couleur représentant leur statut. Cela pourrait être :
- Cercle blanc: Inactif ou en maintenance
- Point vert: Actif.
- Pointe Blanche: Désactivation.
- Point rouge:Échec ou erreur.
Pour vérifier si un seul service est activé, utilisez la commande is-enabled et indiquez le nom du fichier d'unité du service.
systemctl es-activé htg-example.service

Contrôle des services avec systemctl
L'utilisation de systemctl pour gérer les services est très simple et suit le format des commandes que nous avons vues jusqu'à présent. La plus grande différence est que vous devrez utiliser sudo pour apporter des modifications aux états de service. Nous ne l’avons pas fait jusqu’à présent, car nous n’avons fait que rendre compte de l’état des services.
Pour démarrer un service, utilisez la commande start suivie du nom du service.
transpirer systemctl commencer exemple htg.service

Si tout se passe bien, vous serez renvoyé silencieusement à l’invite de commande. Si vous préférez avoir une confirmation positive, vous pouvez la vérifier avec la commande status.
transpirer systemctl statut exemple htg.service

Arrêter un service est aussi simple que le démarrer.
transpirer systemctl arrêt exemple htg.service

Vous pouvez redémarrer un service sans avoir à passer par le processus en deux étapes consistant à l'arrêter puis à le redémarrer. Il commande de redémarrage fait tout pour vous.
transpirer systemctl redémarrage exemple htg.service

Si vous souhaitez qu'un service démarre au démarrage, vous devez l'activer.
transpirer systemctl activer exemple htg.service

Notez que cela marque uniquement le service à démarrer au démarrage, il ne le démarre pas immédiatement. Si c'est ce que vous voulez, j'ai ajouté l'option –now.
transpirer systemctl activer --maintenant exemple htg.service

Lorsque vous n’avez plus besoin qu’un service démarre au démarrage, désactivez-le.
transpirer systemctl désactiver exemple htg.service

Vous pouvez utiliser la commande journalctl, une autre partie de systemd, pour rechercher des entrées liées à votre service. L'option -u (unité) vous permet de spécifier le service qui vous intéresse. Avec l'option -S (depuis), vous pouvez afficher les entrées qui se sont produites depuis le moment que vous fournissez.
journalctl -S "08:00:00" -ou exemple htg.service

Tout outil qui vous aide obtenir des informations sur l'opération Les composants internes de votre distribution Linux seront d'une valeur inestimable, à la fois pour la gestion quotidienne et pour le dépannage et le diagnostic des problèmes. La commande systemctl n’est pas un outil unique. Il s’agit plutôt d’un coffre à outils spécialisé, et il vaut la peine de se familiariser avec. 🔧🛠️