Intermédiaire25 minPrérequis : Module 5

Services systemd

Gérer Xytherion avec systemctl, lire journald, personnaliser le service.

Pourquoi systemd pour Xytherion ?

Si vous avez répondu [o] lors de l'installation, le script a déjà créé le service pour vous. Ce module explique ce que fait ce service, comment le gérer, et comment lire ses logs en temps réel.

systemd est le gestionnaire de services standard sur toutes les distributions Linux modernes (Ubuntu, Debian, RHEL, CentOS, Arch). Il garantit que Xytherion démarre au boot, redémarre en cas de crash, et écrit ses logs dans journald.

Le fichier de service

Le script d'installation crée ce fichier dans /etc/systemd/system/xytherion.service :

bash
[Unit]Description=Xytherion monitoring agentAfter=network.target [Service]ExecStart=/usr/local/bin/xytherionRestart=alwaysRestartSec=3 [Install]WantedBy=multi-user.target

Restart=always : si l'agent plante ou est tué par l'OOM killer, systemd le redémarre automatiquement après 3 secondes. After=network.target : l'agent attend que le réseau soit disponible avant de démarrer.

Commandes essentielles

bash
# Vérifier le statutsystemctl status xytherion # Démarrer / Arrêtersudo systemctl start xytherionsudo systemctl stop xytherion # Redémarrer (après un changement de config)sudo systemctl restart xytherion # Activer au démarrage (si pas déjà fait)sudo systemctl enable xytherion # Désactiver le démarrage automatiquesudo systemctl disable xytherion

Lire les logs en temps réel

bash
# Suivre les logs en directjournalctl -u xytherion -f # 100 dernières lignesjournalctl -u xytherion -n 100 # Depuis le dernier bootjournalctl -u xytherion -b
✦
Lors du démarrage de l'agent, vous devriez voir : xytherion listening on :9001 (hostname: mon-serveur). Si vous voyez une erreur de port déjà utilisé, un autre processus occupe le 9001.

Personnaliser le port

Pour changer le port ou l'intervalle de collecte, éditez le fichier service :

bash
sudo nano /etc/systemd/system/xytherion.service # Modifier la ligne ExecStart :ExecStart=/usr/local/bin/xytherion --port 9002 --interval 2s # Recharger la config systemd et redémarrersudo systemctl daemon-reloadsudo systemctl restart xytherion
✎

Exercice pratique — systemd en pratique

  1. 1Vérifiez que le service est actif avec systemctl status xytherion.
  2. 2Ouvrez journalctl -u xytherion -f dans un terminal, et dans un autre tuez le processus avec sudo kill $(pgrep xytherion).
  3. 3Observez dans les logs comment systemd le redémarre automatiquement au bout de 3 secondes.
  4. 4Vérifiez dans Xytherion que le Dead Man's Switch a affiché 'Connexion perdue' puis 'En ligne' à la reconnexion.

Ce que vous venez d'apprendre

  • Restart=always garantit que l'agent redémarre après un crash — clé pour la production.
  • journalctl -u xytherion -f affiche les logs en temps réel.
  • Modifiez ExecStart dans le fichier .service pour personnaliser port et intervalle.
  • Toujours recharger avec daemon-reload après modification du fichier service.