SmartHomeNG als Dienst einrichten

Um SmartHomeNG als Dienst zu betreiben muß eine Startup-Datei für systemd erstellt werden.

Warnung

Bevor man als Neuling SmartHomeNG als Dienst einrichtet, sollte man das System verstanden haben und es sollte fehlerfrei laufen.

Zum Einrichten den Texteditor starten mit

sudo nano /lib/systemd/system/smarthome.service

und folgenden Text hineinkopieren:

[Unit]
Description=SmartHomeNG daemon
After=network.target
After=knxd.service
After=knxd.socket

[Service]
Type=forking
ExecStart=/usr/bin/python3 /usr/local/smarthome/bin/smarthome.py
User=smarthome
PIDFile=/usr/local/smarthome/var/run/smarthome.pid
Restart=on-abort

[Install]
WantedBy=default.target

Der so vorbereitete Dienst kann über den systemctl Befehl gestartet werden.

sudo systemctl start smarthome.service

Im Log schauen, ob keine Fehlermeldung beim Starten geschrieben wurde.

tail /usr/local/smarthome/var/log/smarthome-warnings.log

Wenn alles ok ist, kann der Autostart aktiviert werden:

sudo systemctl enable smarthome.service

Bei Systemstart wird nun SmartHomeNG automatisch gestartet.

Um den Dienst wieder auszuschalten und den Neustart bei Systemstart zu verhindern nutzt man:

sudo systemctl disable smarthome.service

Um zu sehen, ob SmartHomeNG läuft, genügt ein

sudo systemctl status smarthome.service

Läuft es noch nicht und man möchte sozusagen manuell starten reicht ein:

sudo systemctl start smarthome.service

Ein Neustart von SmartHomeNG würde mit

sudo systemctl restart smarthome.service

funktionieren, ein Stop von SmartHomeNG entsprechend

sudo systemctl stop smarthome.service