Un processus qui tourne en arrière-plan en permanence, sans interface visible, et attend des événements pour agir.

Le gardien silencieux

Dans un hôtel, il y a des équipes qui travaillent la nuit. On ne les voit pas depuis sa chambre. Mais si le chauffage tombe en panne à 3h du matin, quelqu'un est là, alerte, qui intervient.

Un daemon, c'est ce processus invisible. Il tourne depuis le démarrage du serveur. Il n'affiche rien, n'attend pas qu'on l'appelle. Il surveille, écoute, et réagit quand quelque chose se passe.

Exemples concrets

  • Le serveur web (nginx, Apache) est un daemon : il écoute les requêtes HTTP 24h/24
  • L'agent de surveillance système qui redémarre un service si il plante
  • Le daemon SSH qui attend les connexions entrantes sur le port 22
  • Hermes sur le VPS Browse Club : un daemon qui écoute les webhooks et déclenche des actions

Pour aller plus loin

Sur Linux/macOS, les daemons sont gérés par systemd (ou launchd sur macOS). On les configure dans des fichiers .service.

# Voir les daemons actifs
systemctl list-units --type=service --state=running

# Démarrer / arrêter un daemon
systemctl start mon-service
systemctl stop mon-service

# Le relancer automatiquement au démarrage
systemctl enable mon-service

La convention de nommage Unix : les daemons ont souvent un d à la fin du nom. sshd (SSH daemon), nginx (web daemon), croncrond.

La différence avec un worker : un worker traite des jobs depuis une queue (il dépend d'un système externe). Un daemon est autonome, il écoute directement les événements système ou réseau.