Cette leçon fournit un aperçu fondamental des fichiers d'unité systemd et comment les gérer avec systemctl, l'outil principal pour contrôler le système d'initialisation (init). Nous aborderons la structure de base d'un fichier d'unité et les commandes essentielles pour gérer les services Linux.
Comprendre un Fichier d'Unité Systemd
A un fichier d'unité systemd est un fichier texte simple qui décrit un service, un point de montage, un périphérique ou une autre ressource que systemd peut gérer. Voici un exemple de base d'un fichier d'unité de service nommé foobar.service :
[Unit]
Description=Mon Service Foobar
After=network.target
[Service]
ExecStart=/usr/bin/foobar
[Install]
WantedBy=multi-user.target
Ce fichier de service simple est divisé en sections :
- [Unit] : Cette section contient les métadonnées et les informations de dépendance. La directive
Descriptionfournit un nom lisible par l'homme pour l'unité. Des directives commeAfteretBeforecontrôlent l'ordre de démarrage, garantissant que cette unité démarre après que le réseau soit disponible. - [Service] : Cette section définit comment gérer le service. La directive
ExecStartest cruciale, car elle spécifie la commande à exécuter pour démarrer le service. D'autres directives commeExecStopetExecReloadpeuvent définir comment arrêter ou recharger le service. - [Install] : Cette section définit le comportement de l'unité lorsqu'elle est activée ou désactivée avec
systemctl. La directiveWantedByindique à systemd de démarrer ce service dans le cadre d'une cible spécifique, telle quemulti-user.targetpour un démarrage standard non graphique.
Ceci n'est qu'un aperçu des fichiers d'unité systemd. Pour des configurations plus avancées, une lecture approfondie sur le sujet est fortement recommandée.
Commandes Systemctl Essentielles
Explorons maintenant les commandes systemctl essentielles que vous utiliserez pour interagir avec les unités systemd et gérer les services Linux.
Lister les Unités Systemd
Pour voir toutes les unités actives que systemd gère actuellement, utilisez la commande list-units.
systemctl list-units
Vérifier le Statut d'une Unité
Pour afficher l'état détaillé d'une unité spécifique, y compris si elle est active, activée, et ses dernières entrées de journal, utilisez la commande status.
systemctl status networking.service
Gérer les États des Services
Vous pouvez contrôler l'état d'exécution d'un service en utilisant start, stop et restart.
Pour démarrer un service immédiatement :
sudo systemctl start networking.service
Pour arrêter un service en cours d'exécution :
sudo systemctl stop networking.service
Pour arrêter puis redémarrer le service :
sudo systemctl restart networking.service
Activer et Désactiver les Services
Activer un service crée un lien symbolique qui l'accroche au processus de démarrage, garantissant qu'il démarre automatiquement. Le désactiver supprime ce lien.
Pour activer un service afin qu'il démarre au démarrage :
sudo systemctl enable networking.service
Pour désactiver un service afin qu'il ne démarre pas au démarrage :
sudo systemctl disable networking.service
Ces commandes sont les éléments de base de la gestion des services sur les systèmes Linux modernes. Les maîtriser est une étape clé dans votre parcours Linux.