Aller au contenu principal

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