Introduction
Bienvenue dans ce laboratoire pratique sur la gestion des services Linux. Les services sous Linux sont des processus d'arrière-plan qui gèrent des fonctions système critiques telles que la connectivité réseau, la journalisation, l'impression, etc. Gérer efficacement ces services est une compétence essentielle pour les administrateurs Linux.
Dans ce laboratoire, vous apprendrez à utiliser la commande systemctl, qui fait partie de la suite systemd - le système d'initialisation standard et le gestionnaire de services pour la plupart des distributions Linux modernes. Vous allez pratiquer la vérification de l'état des services, le contrôle des services en les démarrant et en les arrêtant, ainsi que la configuration du comportement des services au démarrage du système.
À la fin de ce laboratoire, vous comprendrez les bases de la gestion des services Linux, vous permettant de contrôler efficacement les services système dans un environnement Linux.
Comprendre et vérifier l'état des services système
Dans cette étape, vous apprendrez à vérifier l'état des services système en utilisant la commande systemctl. Comprendre l'état des services est la première étape pour une gestion efficace des services.
Qu'est-ce que sont les services système ?
Les services système (ou démons) sont des programmes qui s'exécutent en arrière-plan pour effectuer diverses tâches système. Ils démarrent généralement au démarrage du système et continuent de fonctionner jusqu'à l'arrêt du système. Des exemples incluent les serveurs web, les serveurs de base de données, les serveurs SSH et les services d'impression.
Vérifier l'état d'un service
Commençons par vérifier l'état du service SSH (sshd), qui est couramment utilisé pour l'accès distant aux systèmes Linux :
Ouvrez un terminal dans l'environnement de la machine virtuelle LabEx. Vous devriez déjà être dans le répertoire par défaut, qui est
/home/labex/project.Exécutez la commande suivante pour vérifier l'état du service SSH :
systemctl status sshdVous devriez voir une sortie similaire à celle-ci :
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2023-10-25 08:15:00 UTC; 1h 30min ago Docs: man:sshd(8) man:sshd_config(5) Process: 1234 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 1235 (sshd) Tasks: 1 (limit: 4915) Memory: 5.6M CPU: 500ms CGroup: /system.slice/ssh.service └─1235 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startupsCette sortie fournit des informations importantes sur le service :
- Loaded : Indique si le service est chargé et s'il est activé pour démarrer au démarrage
- Active : Indique si le service est actuellement en cours d'exécution
- Process/Main PID : Affiche l'identifiant de processus du service
- Memory/CPU : Indique l'utilisation des ressources
- Logs : Entrées de journal récentes liées au service
Si vous avez besoin de vérifier l'état d'un autre service, vous pouvez remplacer
sshdpar le nom de ce service. Par exemple, pour vérifier l'état du serveur web Apache (si installé) :systemctl status apache2
Lister tous les services
Vous pouvez lister tous les services de votre système avec la commande suivante :
Pour lister tous les services actifs :
systemctl list-units --type=service --state=activeCette commande affiche tous les services actuellement actifs sur votre système.
Pour lister tous les services, quel que soit leur état :
systemctl list-units --type=service --all
Créer un fichier de liste de services
Maintenant, créons un fichier pour stocker la liste de tous les services en cours d'exécution sur le système :
Créez un fichier nommé
services_list.txtdans le répertoire actuel en exécutant :systemctl list-units --type=service --state=running > ~/project/services_list.txtCette commande exécute
systemctl list-unitset redirige sa sortie vers un fichier nomméservices_list.txtdans votre répertoire de projet.Vérifiez que le fichier a été créé et qu'il contient des données :
cat ~/project/services_list.txtVous devriez voir une liste de tous les services en cours d'exécution sur votre système.
Dans cette étape, vous avez appris à vérifier l'état des services et à créer une liste de tous les services en cours d'exécution sur votre système. Ces informations sont précieuses pour comprendre quels services sont actifs et comment ils sont configurés.
Contrôle des services système : Démarrer, Arrêter et Redémarrer
Dans cette étape, vous apprendrez à démarrer, arrêter et redémarrer les services système. Ces opérations sont essentielles pour la maintenance des services, la résolution de problèmes et l'application de modifications de configuration.
Démarrer et arrêter des services
Pratiquons le contrôle du service SSH :
Tout d'abord, vérifiez l'état actuel du service SSH :
systemctl status sshdNotez si le service est actuellement actif ou inactif.
Maintenant, arrêtez le service SSH :
sudo systemctl stop sshdCette commande arrête le service immédiatement. En cas de succès, cette commande ne produit aucune sortie.
Vérifiez que le service a été arrêté :
systemctl status sshdLa sortie devrait maintenant indiquer que le service est "inactive (dead)" :
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: inactive (dead) since Wed 2023-10-25 10:15:00 UTC; 5s agoRedémarrez le service :
sudo systemctl start sshdVérifiez que le service a démarré :
systemctl status sshdLa sortie devrait indiquer que le service est de nouveau "active (running)".
Redémarrer des services
Redémarrer un service est une opération courante, notamment après avoir modifié sa configuration :
Pour redémarrer le service SSH :
sudo systemctl restart sshdCette commande arrête puis redémarre le service.
Pour vérifier le redémarrage, vérifiez l'état du service :
systemctl status sshdRegardez la ligne "Active" pour voir quand le service a été démarré pour la dernière fois.
Créer un fichier de référence pour les commandes de contrôle de service
Créons un fichier de référence avec les commandes que vous avez apprises :
Créez un fichier nommé
service_control.txtdans votre répertoire de projet :echo "Service Control Commands:" > ~/project/service_control.txt echo "Start a service: sudo systemctl start <service_name>" >> ~/project/service_control.txt echo "Stop a service: sudo systemctl stop <service_name>" >> ~/project/service_control.txt echo "Restart a service: sudo systemctl restart <service_name>" >> ~/project/service_control.txtVérifiez le contenu du fichier :
cat ~/project/service_control.txt
Dans cette étape, vous avez appris à contrôler les services en les démarrant, en les arrêtant et en les redémarrant. Ces opérations sont fondamentales pour la gestion et la maintenance des services dans les systèmes Linux.
Gestion du comportement de démarrage des services : Activer et Désactiver
Dans cette étape, vous apprendrez à configurer si les services démarrent automatiquement au démarrage du système. Cela est important pour garantir que les services nécessaires sont disponibles sans intervention manuelle après un redémarrage du système.
Comprendre la configuration de démarrage des services
Les services peuvent être configurés pour démarrer automatiquement au démarrage (activés) ou pour nécessiter un démarrage manuel (désactivés). Cette configuration est indépendante de l'état actuel d'exécution du service.
Vérifier si un service est activé
Pour vérifier si le service SSH est configuré pour démarrer au démarrage :
systemctl is-enabled sshdLa sortie sera soit "enabled" (démarre au démarrage) soit "disabled" (ne démarre pas au démarrage).
Désactiver un service
Lorsque vous désactivez un service, vous le configurez pour qu'il ne démarre pas automatiquement au démarrage :
Désactivez le service SSH :
sudo systemctl disable sshdVous devriez voir un message indiquant que le lien symbolique a été supprimé :
Removed /etc/systemd/system/multi - user.target.wants/ssh.service.Vérifiez que le service est maintenant désactivé :
systemctl is-enabled sshdLa sortie devrait être "disabled".
Notez que désactiver un service ne l'arrête pas s'il est actuellement en cours d'exécution. Vérifiez l'état actuel :
systemctl status sshdMême si le service est maintenant désactivé pour le prochain démarrage, il peut toujours être actif.
Activer un service
Lorsque vous activez un service, vous le configurez pour qu'il démarre automatiquement au démarrage :
Réactivez le service SSH :
sudo systemctl enable sshdVous devriez voir un message indiquant que le lien symbolique a été créé :
Created symlink /etc/systemd/system/multi - user.target.wants/ssh.service → /lib/systemd/system/ssh.service.Vérifiez que le service est maintenant activé :
systemctl is-enabled sshdLa sortie devrait être "enabled".
Commandes combinées
Vous pouvez également combiner l'activation/désactivation avec le démarrage/arrêt en une seule commande :
Pour désactiver et arrêter un service en une seule commande :
sudo systemctl disable --now sshdPour activer et démarrer un service en une seule commande :
sudo systemctl enable --now sshd
Créer un fichier de référence pour la configuration de démarrage des services
Créons un fichier de référence avec les commandes que vous avez apprises :
Créez un fichier nommé
service_boot.txtdans votre répertoire de projet :echo "Service Boot Configuration Commands:" > ~/project/service_boot.txt echo "Check if a service is enabled: systemctl is-enabled <service_name>" >> ~/project/service_boot.txt echo "Enable a service to start at boot: sudo systemctl enable <service_name>" >> ~/project/service_boot.txt echo "Disable a service from starting at boot: sudo systemctl disable <service_name>" >> ~/project/service_boot.txt echo "Enable and immediately start a service: sudo systemctl enable --now <service_name>" >> ~/project/service_boot.txt echo "Disable and immediately stop a service: sudo systemctl disable --now <service_name>" >> ~/project/service_boot.txtVérifiez le contenu du fichier :
cat ~/project/service_boot.txt
Dans cette étape, vous avez appris à gérer le comportement de démarrage des services en les activant et les désactivant. Cela est crucial pour configurer quels services démarrent automatiquement au démarrage du système, garantissant que les services nécessaires sont disponibles tandis que les services inutiles ne consomment pas de ressources.
Résumé
Dans ce laboratoire, vous avez appris les bases de la gestion des services Linux en utilisant la commande systemctl. Vous avez pratiqué les compétences essentielles que tout administrateur Linux devrait connaître :
Vérification de l'état des services : Vous avez appris à afficher l'état actuel des services, ce qui est crucial pour la surveillance et la résolution de problèmes.
Contrôle des services : Vous avez pratiqué le démarrage, l'arrêt et le redémarrage des services, qui sont des opérations de base nécessaires pour la maintenance et les modifications de configuration.
Gestion du comportement de démarrage : Vous avez appris à activer et désactiver les services au démarrage du système, vous permettant de contrôler quels services s'exécutent automatiquement après un redémarrage.
Ces compétences constituent la base d'une gestion efficace des services dans les environnements Linux. Au fur et à mesure que vous continuerez à travailler avec les systèmes Linux, vous trouverez ces commandes essentielles pour maintenir la stabilité et les performances du système.
N'oubliez pas qu'une bonne gestion des services est essentielle pour la sécurité du système, l'optimisation des ressources et la disponibilité des fonctionnalités nécessaires en cas de besoin. Les connaissances que vous avez acquises dans ce laboratoire serviront de base pour des tâches d'administration Linux plus avancées.



