FHEM - Hardware > Einplatinencomputer

FHEMWidget mittels SYSTEMD nach reboot automatisch starten

(1/3) > >>

Bartimaus:
Moin,

ich nutze zur Fernsteuerung das hier angebotene FHEMWidget2. (https://forum.fhem.de/index.php/topic,45328.0.html)
Dies wird auf der Konsole des RPi in einem Screen gestartet, mit der Folge, das es NICHT automatisch nach einem SystemReboot oder Neustart von FHEM automatisch gestartet wird.

Ich habe jetzt unter /etc/systemd/system ein "fhemwidget.service" mit folgendem Inhalt angelegt:


--- Code: ---[Unit]
Description=starten des FHEM-Widgets nach reboot
After=fhem.service

[Service]
ExecStart=/usr/local/bin/sync.sh
Restart=always

[Install]
WantedBy=multi-user.target

--- Ende Code ---

anschliessend per

sudo systemctl daemon-reload
sudo systemctl enable fhemwidget.service
sudo systemctl start fhemwidget.service

aktiviert.

der Inhalt der sync.sh sieht wie folgt aus:

--- Code: ---#!/bin/sh
screen -dmS FHEMSyncClient bash pushsync.sh
exit

--- Ende Code ---

führe ich die sync.sh manuell aus, wird der SyncService des Widgets gestartet, und ich kann von ausserhalb meinen Heimnetzwerks via der App auf die darin enthaltenen Schalter o.ä. zugreifen.

Leider funktioniert es nicht automatisch via "systemd".

Können die LinuxProfis mir hier mal den entscheidenden Tip geben ?

Wernieman:
Als welcher user startest Du denn Normalerweise das Script?

Und .. muß es wirklich "IM" Screen laufen?? Kenne jetzt das Script selber nicht ....

Bartimaus:
Moin,

also normalerweise starte ich das Skipt händisch via User "pi".
Ich habe es jetzt geschafft, das Skript auch automatisch via Service@systemd zu starten, dies geschieht allerdings mit Rootrechten. Es tut aber der Funktion keinen Abbruch.

Warum es in einem Screen läuft ? Weil es funktioniert und vom Developer so vorgeschlagen wurde.....

http://tasior.info:8081/fhemwidget_sync_de.html

Aber ich habe mich auch schon gefragt, ob der Sync-Client (ist ne Java-Anwendung) nicht ohne Screen laufen würde....., aber so tief stecke ich in der Materie nicht drin. So wird der SyncClient gestartet:


--- Code: ---java -jar FHEM_Sync_Client.jar -v -url=http://localhost:8084
--- Ende Code ---

Bin schon froh das es jetzt via Systemd automatisch läuft... aber für Verbesserungen bin ich immer zu haben.

Wernieman:
Also eigentlich kennt Systemd User/Gruppe

--- Code: ---User=pi
Group=pi

--- Ende Code ---

Und warum er im Screen laufen soll, schreibe der nicht. Ich würde es einfach "nur" in den Hintergrund schicken. Wenn es aber läuft ....

Bartimaus:
Danke, den User in Systemd mitzugeben hatte ich auch schon dran gedacht... baue ich mal ein.

Wie würdest Du denn das "in den Hintergrund schicken" ?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln