Aller au contenu principal

Chapitre 2.6 - Processus Init et systemd

Objectifs d'Apprentissage​

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

  • Comprendre le rôle du processus init (PID 1)
  • Expliquer comment systemd gère les services
  • Comprendre les unit files systemd
  • Gérer les services avec systemctl

Qu'est-ce que systemd?​

systemd est le système d'initialisation et de gestion des services dans la plupart des distributions Linux modernes. Il remplace les anciens systèmes init (SysV init).


Rôles de systemd​

1. Premier Processus (PID 1)​

systemd est toujours le processus avec PID 1:

  • Parent de tous les processus
  • Gère les processus orphelins
  • Ne peut pas être tué normalement

2. Gestion des Services​

systemd démarre, arrête et surveille les services:

  • Démarrage automatique au boot
  • Redémarrage en cas d'échec
  • Dépendances entre services
  • Monitoring de l'état

3. Gestion des Niveaux d'Exécution​

systemd utilise des targets (équivalents aux runlevels):

  • multi-user.target: Mode console
  • graphical.target: Mode graphique
  • rescue.target: Mode de secours
  • poweroff.target: Arrêt

Unit Files​

Les services systemd sont définis par des unit files:

[Unit]
Description=Service Web Apache
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/apache2 -D FOREGROUND
Restart=always

[Install]
WantedBy=multi-user.target

Types d'unit files:

  • .service: Services
  • .target: Niveaux d'exécution
  • .timer: Tâches planifiées (alternative à cron)
  • .mount: Points de montage
  • .socket: Sockets réseau

Commandes systemctl​

Gestion des services avec systemctl:

# Voir l'état d'un service
systemctl status apache2

# Démarrer un service
systemctl start apache2

# Arrêter un service
systemctl stop apache2

# Redémarrer un service
systemctl restart apache2

# Activer au démarrage
systemctl enable apache2

# Désactiver au démarrage
systemctl disable apache2

# Voir tous les services
systemctl list-units --type=service

Journal systemd​

systemd gère les logs avec journalctl:

# Voir les logs d'un service
journalctl -u apache2

# Logs en temps réel
journalctl -f

# Logs depuis aujourd'hui
journalctl --since today

# Logs avec priorité
journalctl -p err

Résumé​

Dans ce chapitre, vous avez appris:

systemd: Système d'initialisation moderne, PID 1
Rôles: Gestion services, processus, niveaux d'exécution
Unit files: Configuration des services
systemctl: Commandes de gestion
journalctl: Visualisation des logs


Prochaines Étapes​

Chapitre 2.7: Services et Démon
Chapitre 2.8: Niveaux d'Exécution (Runlevels)


Chapitre créé le: Décembre 2024