Pythonscript unter Ubuntu als Service starten

04.05.2019 - Lesezeit: 2 Minuten

Oldscool einen Eintrag in /etc/rc.local

oder als Service


Meinen [Wetterserver](http://bone.nfix.de/wetter 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_speicher.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**
- https://www.thomaschristlieb.de/ein-python-script-mit-systemd-als-daemon-systemd-tut-garnicht-weh/
- https://www.reddit.com/r/learnpython/comments/8eh057/how_to_run_python_script_as_a_service_in_ubuntu/
- https://wiki.ubuntuusers.de/systemd/Units/#Eigene-Units-anlegen
- https://www.freedesktop.org/software/systemd/man/systemd.special.html
- https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
- https://unix.stackexchange.com/questions/126009/cause-a-script-to-execute-after-networking-has-started
Tags: Kubuntu beaglebone