Systemd pour python-pygame
Et oui, init.d c’est fini, mort et enterré. Place à systemd désormais.
Donc pour lancer le joli petit pi-radio qui n’est rien d’autre qu’un petit script en python de façon automatique il m’en fallait un.
pi-radio.service
Comme j’ai un peu souffert pour le faire fonctionner correctement il est judicieux de vous le filer (il est dans le repo) mais surtout de l’expliquer.
[Unit]
Description=Launch Pi Radio
Wants=network-online.target
After=network-online.target
[Service]
Environment=MPD_HOST=192.168.0.XX
ExecStart=/usr/bin/python -u radioplayer.py
[Install]
WantedBy=multi-user.target
Explications
Je vous ferai grâce d’une explication ligne par ligne mais vous indiquerais plutôt pourquoi telle ou telle valeur.
- Wants & After: sans réseau il ne fonctionnera pas vu que mon mpd est sur une autre machine.
- Environment: spécifie une adresse différente pour la connexion sur mpd (par défault il se connecte sur localhost: cfr la doc de MPC pr en savoir plus)
- ExecStart: le switch -u est utilisé et CAPITAL pour débugguer à travers systemd. Visiblement python par défault bufferise le stdout & stderr et cela nous prive des détails à travers le journalctl lors du débugguage
WorkingDir: Le script en l’état n’a visiblement pas conscience d’où il se trouve et si on le lance en l’état il ne retrouve pas ses fichiers images. Il faut donc le forcer à se lancer depuis un working directory donnéle hash 64d08ee permet dorénavant de se passer du working directory
Posted in Vidéo & Audio at February 6th, 2016. Comments Off on Systemd pour python-pygame.