Gestion des services Linux

LinuxBeginner
Pratiquer maintenant

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 :

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

  2. Exécutez la commande suivante pour vérifier l'état du service SSH :

    systemctl status sshd
    

    Vous 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 startups
    

    Cette 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
  3. Si vous avez besoin de vérifier l'état d'un autre service, vous pouvez remplacer sshd par 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 :

  1. Pour lister tous les services actifs :

    systemctl list-units --type=service --state=active
    

    Cette commande affiche tous les services actuellement actifs sur votre système.

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

  1. Créez un fichier nommé services_list.txt dans le répertoire actuel en exécutant :

    systemctl list-units --type=service --state=running > ~/project/services_list.txt
    

    Cette commande exécute systemctl list-units et redirige sa sortie vers un fichier nommé services_list.txt dans votre répertoire de projet.

  2. Vérifiez que le fichier a été créé et qu'il contient des données :

    cat ~/project/services_list.txt
    

    Vous 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 :

  1. Tout d'abord, vérifiez l'état actuel du service SSH :

    systemctl status sshd
    

    Notez si le service est actuellement actif ou inactif.

  2. Maintenant, arrêtez le service SSH :

    sudo systemctl stop sshd
    

    Cette commande arrête le service immédiatement. En cas de succès, cette commande ne produit aucune sortie.

  3. Vérifiez que le service a été arrêté :

    systemctl status sshd
    

    La 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 ago
    
  4. Redémarrez le service :

    sudo systemctl start sshd
    
  5. Vérifiez que le service a démarré :

    systemctl status sshd
    

    La 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 :

  1. Pour redémarrer le service SSH :

    sudo systemctl restart sshd
    

    Cette commande arrête puis redémarre le service.

  2. Pour vérifier le redémarrage, vérifiez l'état du service :

    systemctl status sshd
    

    Regardez 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 :

  1. Créez un fichier nommé service_control.txt dans 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.txt
    
  2. Vé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é

  1. Pour vérifier si le service SSH est configuré pour démarrer au démarrage :

    systemctl is-enabled sshd
    

    La 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 :

  1. Désactivez le service SSH :

    sudo systemctl disable sshd
    

    Vous devriez voir un message indiquant que le lien symbolique a été supprimé :

    Removed /etc/systemd/system/multi - user.target.wants/ssh.service.
    
  2. Vérifiez que le service est maintenant désactivé :

    systemctl is-enabled sshd
    

    La sortie devrait être "disabled".

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

    Mê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 :

  1. Réactivez le service SSH :

    sudo systemctl enable sshd
    

    Vous 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.
    
  2. Vérifiez que le service est maintenant activé :

    systemctl is-enabled sshd
    

    La 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 :

  1. Pour désactiver et arrêter un service en une seule commande :

    sudo systemctl disable --now sshd
    
  2. Pour 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 :

  1. Créez un fichier nommé service_boot.txt dans 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.txt
    
  2. Vé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 :

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

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

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