SmartHomeNG als Dienst einrichten update
Um SmartHomeNG als Dienst zu betreiben muss 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 /etc/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
WorkingDirectory=/usr/local/smarthome
User=smarthome
PIDFile=/usr/local/smarthome/var/run/smarthome.pid
Restart=on-failure
TimeoutStartSec=900
RestartForceExitStatus=5
[Install]
WantedBy=default.target
Achtung
Die Angabe RestartForceExitStatus=5 ist notwendig, damit der automatische Restart bei der Nachinstallation von Python Packages und der durch die AdminGUI ausgelöste Neustart auch für ein als Service laufendes SmartHomeNG funktionieren.
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