Pythonscript unter Ubuntu als Service starten

Meinen Wetterserver möchte ich als Service starten, so dass ich Programmupdates ohne Reboot des BBB einspielen kann.

Ich benötige zwei Services

  • zum Speicher der über MQTT empfangen Daten: wnf_wetter_spe­icher.service
  • zum Anzeigen der Daten: wnf_wetter_http­.service
$ sudo nano /etc/systemd/system/wnf_wetter_speicher.service

Da der Service unbedingt eine aktives Netzwerk braucht, wird dieser Service nach dem network-online.target gestartet.

[Unit]
Description=wnfWetterSpeichern
Wants=network-online.target
After=network-online.target syslog.target

[Service]
Type=simple
User=wnf
Group=wnf
WorkingDirectory=/home/wnf/wnfwetter/
ExecStart=/home/wnf/wnfwetter/wnf_wetter_speicher.py
StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/wnf_wetter_http.service
[Unit]
Description=wnfWetterHttp
After=syslog.target

[Service]
Type=simple
User=wnf
Group=wnf
WorkingDirectory=/home/wnf/wnfwetter/
ExecStart=/home/wnf/wnfwetter/wnf_wetter_http.py
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target
$ sudo systemctl enable wnf_wetter_speicher.service
$ sudo systemctl enable wnf_wetter_http.service
$ sudo systemctl daemon-reload
$ sudo service wnf_wetter_speicher start
$ sudo service wnf_wetter_http start

Literatur