Chapitre 2.7 - Services et Démon
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre les services et démons Linux
- Gérer les services avec systemd
- Créer des services personnalisés
- Comprendre les unit files systemd
Qu'est-ce qu'un Service/Démon?
Un service (ou démon) est un programme qui s'exécute en arrière-plan, généralement sans interface utilisateur, pour fournir des fonctionnalités système ou réseau.
Types de Services
Services Système
Services essentiels au fonctionnement du système:
- sshd: Serveur SSH
- systemd-logind: Gestion des sessions
- NetworkManager: Gestion réseau
Services Réseau
Services qui écoutent sur le réseau:
- apache2/nginx: Serveurs web
- mysql/postgresql: Bases de données
- bind9: Serveur DNS
Services Utilisateur
Services lancés par l'utilisateur:
- pulseaudio: Audio
- dbus: Communication inter-processus
Gestion avec systemd
Commandes 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
# Recharger la configuration
systemctl reload 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
# Voir les services actifs
systemctl list-units --type=service --state=running
Unit Files
Les services sont définis par des unit files dans /etc/systemd/system/ ou /lib/systemd/system/:
Exemple de service simple:
[Unit]
Description=Mon Service Personnalisé
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/mon-service
Restart=always
User=monuser
[Install]
WantedBy=multi-user.target
Sections:
- [Unit]: Métadonnées et dépendances
- [Service]: Configuration du service
- [Install]: Installation et activation
Types de Services
Type simple
Service qui démarre et reste actif:
Type=simple
ExecStart=/usr/bin/mon-service
Type forking
Service qui fork et le parent se termine:
Type=forking
ExecStart=/usr/bin/mon-service
PIDFile=/var/run/mon-service.pid
Type oneshot
Service qui s'exécute une fois et se termine:
Type=oneshot
ExecStart=/usr/bin/script-init
RemainAfterExit=yes
Dépendances
Les services peuvent avoir des dépendances:
[Unit]
Description=Service Web
After=network.target mysql.service
Requires=mysql.service
Wants=redis.service
Directives:
- After: Démarre après ces services
- Before: Démarre avant ces services
- Requires: Dépendance obligatoire
- Wants: Dépendance optionnelle
Résumé
Dans ce chapitre, vous avez appris:
Services/Démons: Programmes en arrière-plan
systemd: Gestionnaire de services moderne
systemctl: Commandes de gestion
Unit files: Configuration des services
Dépendances: After, Before, Requires, Wants
Types: simple, forking, oneshot
Prochaines Étapes
Chapitre 2.8: Niveaux d'Exécution (Runlevels)
Chapitre 2.9: Processus de Démarrage (Boot)
Chapitre créé le: Décembre 2024