=====================================================
DOCUMENTATION — Installation & Gestion du service ms1_reader
=====================================================
1. Fichier wrapper stable : run.sh

Chemin :
/home/reader/udp_server/run.sh

Contenu du fichier :
#!/bin/bash
/usr/bin/python3 /home/reader/udp_server/chronotrack_server_au.py

Commande pour rendre exécutable :
chmod +x /home/reader/udp_server/run.sh

2. Installation des dépendances Python pour le service

Installer pip3 :
sudo dnf install python3-pip -y

Installer le module MySQL utilisé par le script :
sudo pip3 install mysql-connector-python

3. Fichier systemd : ms1_reader.service

Chemin :
/etc/systemd/system/ms1_reader.service

Contenu du service :

[Unit]
Description=MS1 Reader - Service Python
After=network.target

[Service]
User=reader
WorkingDirectory=/home/reader/udp_server
ExecStart=/home/reader/udp_server/run.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

4. Commandes systemd obligatoires après installation

Recharger les fichiers systemd :
sudo systemctl daemon-reload

Activer le service au démarrage :
sudo systemctl enable ms1_reader.service

Démarrer le service :
sudo systemctl start ms1_reader.service

Vérifier l’état :
sudo systemctl status ms1_reader.service

=====================================================
SECTION : GESTION ET DIAGNOSTICS DU SERVICE
=====================================================
5. Commandes de gestion

Arrêter :
sudo systemctl stop ms1_reader.service

Redémarrer :
sudo systemctl restart ms1_reader.service

Redémarrer + voir immédiatement le status :
sudo systemctl restart ms1_reader.service && sudo systemctl status ms1_reader.service

Désactiver le démarrage automatique :
sudo systemctl disable ms1_reader.service

6. Journalisation & logs

Voir les 50 dernières lignes :
sudo journalctl -u ms1_reader.service -n 50 --no-pager

Voir les logs en temps réel (streaming) :
sudo journalctl -u ms1_reader.service -f

Voir tous les logs depuis le début :
sudo journalctl -u ms1_reader.service --no-pager

Filtrer par date :
sudo journalctl -u ms1_reader.service --since "2025-12-01" --until "2025-12-02"

Effacer les logs journald (si nécessaire) :
sudo journalctl --rotate
sudo journalctl --vacuum-time=2d

7. Vérifications essentielles

Tester si le service tourne :
sudo systemctl is-active ms1_reader.service

Tester si le service est configuré pour démarrer au boot :
sudo systemctl is-enabled ms1_reader.service

Voir le PID du service :
systemctl show -p MainPID ms1_reader.service

Voir la mémoire utilisée par le service :
systemctl status ms1_reader.service
(la ligne "Memory:" affiche la valeur)

8. Dépannage rapide

Si le service plante immédiatement :
journalctl -u ms1_reader.service -n 30 --no-pager

Si le script ne démarre pas :
• vérifier que run.sh est exécutable
chmod +x /home/reader/udp_server/run.sh

• vérifier que le chemin vers le script Python est correct
/home/reader/udp_server/chronotrack_server_au.py

• vérifier les permissions du dossier :
ls -ld /home/reader/udp_server

• vérifier que le module MySQL est installé globalement
pip3 show mysql-connector-python