Commande Linux systemctl

Linux 命令大全Référence des commandes Linux


Qu'est-ce que systemctl

systemctl est un outil en ligne de commande des systèmes Linux utilisé pour contrôler le système et le gestionnaire de services systemd. En tant que composant central des distributions Linux modernes, il remplace le système init et les commandes de service traditionnels.

Introduction à systemd

systemd est un gestionnaire de système et de services qui :

  • S'exécute en tant que PID 1 (le premier processus à démarrer)
  • Responsable du démarrage, de l'arrêt et de la gestion de tous les autres processus
  • Fournit une capacité de démarrage parallèle, ce qui accélère considérablement le temps de démarrage du système
  • Prend en charge le démarrage des services à la demande
  • Fournit une fonctionnalité de collecte des journaux (via journald)

Syntaxe de base de systemctl

systemctl [选项] [命令] [单元名称]

Options courantes

Option Description
-t, --type Spécifier le type d'unité (service, socket, device, etc.)
-a, --all Afficher toutes les unités, y compris les unités inactives
--state Filtrer les unités par état
-l, --full Afficher les informations complètes sur l'unité
-H, --host Opérer sur un hôte distant

Commandes de gestion des services

Démarrer/Arrêter/Redémarrer les services

Exemple

# Démarrer le service
sudo systemctl start [nom du service]

# Arrêter le service
sudo systemctl stop [nom du service]

# Redémarrer le service
sudo systemctl restart [nom du service]

# Recharger la configuration (sans redémarrer le service)
sudo systemctl reload [nom du service]

Afficher l'état du service

Exemple

# Afficher l'état d'un seul service
systemctl status [nom du service]

# Afficher tous les services en cours d'exécution
systemctl list-units --type=service --state=running

# Afficher les services défaillants
systemctl --failed

Activer/Désactiver les services

Exemple

# Activer le service (démarrage automatique au lancement du système)
sudo systemctl enable [nom du service]

# Désactiver le service (annuler le démarrage automatique au lancement du système)
sudo systemctl disable [nom du service]

# Vérifier si le service est activé
systemctl is-enabled [nom du service]

Gestion des fichiers d'unité

Emplacements des fichiers d'unité

  • Unités système :/usr/lib/systemd/system/
  • Unités personnalisées de l'administrateur :/etc/systemd/system/

Opérations courantes sur les fichiers d'unité

Exemple

# Recharger tous les fichiers d'unité (nécessaire après modification de la configuration)
sudo systemctl daemon-reload

# Afficher le contenu du fichier d'unité
systemctl cat [nom de l'unité]

# Modifier le fichier d'unité (crée un fichier de substitution)
sudo systemctl edit [nom de l'unité] --full

Gestion de l'état du système

Gestion de l'alimentation du système

Exemple

# Éteindre
sudo systemctl poweroff

# Redémarrer
sudo systemctl reboot

# Mettre en veille
sudo systemctl suspend

# Hiberner
sudo systemctl hibernate

Niveaux d'exécution du système

Exemple

# Obtenir la cible actuelle (niveau d'exécution)
systemctl get-default

# Définir la cible par défaut
sudo systemctl set-default [nom de la cible]

# Changer de cible (prend effet immédiatement)
sudo systemctl isolate [nom de la cible]

Cibles courantes :

  • graphical.target - mode interface graphique
  • multi-user.target - mode texte multi-utilisateur
  • rescue.target - mode de secours
  • emergency.target - mode d'urgence

Exemples pratiques

Exemple 1 : Gestion du service Nginx

Exemple

# Démarrer Nginx
sudo systemctl start nginx

# Activer le lancement automatique au démarrage
sudo systemctl enable nginx

# Vérifier l'état
systemctl status nginx

# Tester la configuration puis recharger
sudo nginx -t  # Tester d'abord la configuration
sudo systemctl reload nginx

Exemple 2 : Création d'un service personnalisé

  1. Créer le fichier de service/etc/systemd/system/myapp.service:

Exemple

[Unit]
Description=Mon application personnalisée
After=network.target

[Service]
ExecStart=/usr/bin/python3 /opt/myapp/app.py
WorkingDirectory=/opt/myapp
User=myappuser
Group=myappgroup
Restart=always

[Installer]
WantedBy=multi-user.target
  1. Activer et démarrer le service :

Exemple

sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

Dépannage des problèmes courants

Échec du démarrage du service

  1. Afficher les journaux détaillés :

    journalctl -u [服务名] -xe
  2. Vérifier les dépendances :

    systemctl list-dependencies [服务名]
  3. Lancer en mode débogage :

    systemctl status [服务名] -l --no-pager

Analyse des performances

Exemple

# Afficher le temps de démarrage du système
systemd-analyze

# Afficher le temps de démarrage de chaque service
systemd-analyze blame

# Générer un diagramme de démarrage (nécessite une interface graphique)
systemd-analyze plot > boot.svg

Linux 命令大全Référence des commandes Linux

Autres extensions