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

Read More…

Posted in Vidéo & Audio at February 6th, 2016. Comments Off on Systemd pour python-pygame.