Aller au contenu principal

Chapitre 8.1 - Introduction à systemd

Objectifs d'Apprentissage​

À la fin de ce chapitre, vous serez capable de:

  • Comprendre ce qu'est systemd
  • Utiliser systemctl pour gérer les services
  • Comprendre les unités systemd
  • Voir l'état des services
  • Démarrer, arrêter, redémarrer des services

Qu'est-ce que systemd?​

systemd est le système d'initialisation et de gestion des services sur la plupart des distributions Linux modernes.

Fonctions:

  • Gestion des services
  • Démarrage système
  • Gestion des logs (journald)
  • Planification (timers)
  • Montage de systèmes de fichiers

Unités systemd​

Types d'Unités​

# Voir types
systemctl list-units --type=service
systemctl list-units --type=timer
systemctl list-units --type=mount
systemctl list-units --type=socket

Types courants:

  • .service: Services
  • .timer: Tâches planifiées
  • .mount: Points de montage
  • .socket: Sockets réseau
  • .target: Groupes d'unités

systemctl - Commandes de Base​

Voir l'État​

# Tous les services
systemctl list-units --type=service

# Services actifs
systemctl list-units --type=service --state=running

# Services inactifs
systemctl list-units --type=service --state=inactive

# Services échoués
systemctl list-units --type=service --state=failed

# État d'un service
systemctl status sshd
systemctl status apache2

Démarrer/Arrêter​

# Démarrer
sudo systemctl start service_name

# Arrêter
sudo systemctl stop service_name

# Redémarrer
sudo systemctl restart service_name

# Recharger configuration
sudo systemctl reload service_name

# Recharger ou redémarrer
sudo systemctl reload-or-restart service_name

Activer/Désactiver au Démarrage​

# Activer (démarrage automatique)
sudo systemctl enable service_name

# Désactiver
sudo systemctl disable service_name

# Activer et démarrer
sudo systemctl enable --now service_name

# Vérifier si activé
systemctl is-enabled service_name

États des Services​

États Possibles​

États:

  • active (running): En cours d'exécution
  • active (exited): Terminé avec succès
  • inactive: Arrêté
  • failed: Échec
  • activating: En cours de démarrage

Voir Détails​

# État détaillé
systemctl status service_name

# Informations complètes
systemctl show service_name

# Propriété spécifique
systemctl show -p ActiveState service_name
systemctl show -p LoadState service_name

Commandes Utiles​

Lister les Services​

# Tous les services
systemctl list-units --type=service --all

# Services activés
systemctl list-unit-files --type=service --state=enabled

# Services désactivés
systemctl list-unit-files --type=service --state=disabled

# Par état
systemctl list-units --type=service --state=running
systemctl list-units --type=service --state=failed

Masquer/Afficher​

# Masquer service
sudo systemctl mask service_name

# Démasquer
sudo systemctl unmask service_name

Recharger systemd​

# Recharger configuration (après modification fichiers)
sudo systemctl daemon-reload

Exemples Pratiques​

Gestion SSH​

# Voir état
systemctl status sshd

# Démarrer
sudo systemctl start sshd

# Activer au démarrage
sudo systemctl enable sshd

# Redémarrer
sudo systemctl restart sshd

Gestion Apache/Nginx​

# Apache
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2

# Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Services Échoués​

# Voir services échoués
systemctl list-units --state=failed

# Redémarrer service échoué
sudo systemctl restart failed_service

# Voir logs
sudo journalctl -u failed_service

Résumé​

Dans ce chapitre, vous avez appris:

systemd: Système d'initialisation et gestion services
Unités: .service, .timer, .mount, .socket, .target
systemctl: Commandes pour gérer services
États: active, inactive, failed, activating
Commandes: start, stop, restart, enable, disable, status
Pratique: Gestion services courants (SSH, Apache, etc.)


Prochaines Étapes​

Chapitre 8.2: Création de Services Personnalisés
Chapitre 8.3: Cron Avancé et systemd Timers


Chapitre créé le: Décembre 2024