NEWS
Einen PI3 durch ioBroker herunterfahren?
-
Vielleicht muss man den Pfad nochmals in Hochkomma setzen:
exec ("ssh admin@192.168.1.10 '/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh start'");
oder noch eine Shell starten:
exec ("ssh admin@192.168.1.10 sh '/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh start'");
Aber ansonsten müssen nun wirklich Fachleute helfen.
-
@mickym sagte in Einen PI3 durch ioBroker herunterfahren?:
Vielleicht muss man den Pfad nochmals in Hochkomma setzen:
exec ("ssh admin@192.168.1.10 '/share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh start'");
Das wars tatsächlich!!! Es funktioniert einwandfrei, vielen Dank.
Kann man eigentlich das ganze auch in anderer Richtung machen, dass man in ioBroker sieht ob der Dienst gestartet oder gestoppt ist? Als Gegenkontrolle z.B... -
@Kusi Du kannst dem Aufruf noch eine Callback Funktion mitgeben - initiativ bleibt aber Dein iobroker system
Das heisst wenn Du
exec(ssh admin@192.168.1.10 'systemctl status xxxx', function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });
xxxx ist halt der Dienst der auf dem Zielsystem laufen muss. Die Ausgabe dieses Befehls müsstest Du dann in einem Datenpunkt schreiben können - und mit grep filter usw. - bin auch kein Linux freak.
Diesen exec Befehl lässt Du halt zyklisch ausführen.
Ansnsten wenn Du auf Deinem NAS system programmieren kannst - und Du bei Events aufmerksam wirst kannst DU über die simple api Schnittstelle Informationen an iobroker geben.
-
@mickym das war jetzt zuviel für mein Wissen...
-
@Kusi said in Einen PI3 durch ioBroker herunterfahren?:
@mickym das war jetzt zuviel für mein Wissen...
Nun wie überprüfst Du denn auf Deinem NAS ob Dein Dienst läuft?
Normalerweise gibst Du doch auf der Befehlszeile
systemctl status <Dienst>
ein und Du siehst ob der aktiv ist.
-
@mickym sagte in Einen PI3 durch ioBroker herunterfahren?:
@Kusi said in Einen PI3 durch ioBroker herunterfahren?:
@mickym das war jetzt zuviel für mein Wissen...
Nun wie überprüfst Du denn auf Deinem NAS ob Dein Dienst läuft?
Dies mache ich momentan gar nicht.
Ich habe einen Switch auf der vis mit Aus - Ein.
Wird dieser auf Aus gestellt, dann wird der Stop-Befehl gesendet, auf Ein der Start-Befehl.
Mehr mache ich zur Zeit nicht.Die Funktion "systemctl status <Dienst>" kenne ich nicht.
-
-
-
@Kusi plex.sh ist ein Shell-Script - das kannst Du Dir auf Deinem NAS mit
cat /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh
anschauen und da siehst Du dann was gestartet wird. Ggf. kannst das auch hier posten - aber wie gesagt ich bin auch kein JAVA/Linux oder Shell-Script Guru, um das zu verstehen.
-
@mickym Bin auch mit den Foren-Funktionen noch nicht so vertraut, aber mit dem Spoiler habe ich wohl die richtige Funktion angewählt...
Folgendes wird mir auf cat share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh angezeigt:
-
gelöscht
-
@Kusi said in Einen PI3 durch ioBroker herunterfahren?:
ProcessCount=$(ps -ef | grep plex | wc -l)
Aufgrund dieser Zeile würde ich mal meinen, dass Dein Prozess / Dienst so heißt.
Gib halt mal:
systemctl status plex
ein und schau ob das was mit Active: active (running) enthalten ist
-
@mickym sagte in Einen PI3 durch ioBroker herunterfahren?:
@Kusi said in Einen PI3 durch ioBroker herunterfahren?:
ProcessCount=$(ps -ef | grep plex | wc -l)
Aufgrund dieser Zeile würde ich mal meinen, dass Dein Prozess / Dienst so heißt.
Gib halt mal:
systemctl status plex
Resultat ist immer
-sh: systemctl: command not found
-
@Kusi said in Einen PI3 durch ioBroker herunterfahren?:
@mickym sagte in Einen PI3 durch ioBroker herunterfahren?:
@Kusi said in Einen PI3 durch ioBroker herunterfahren?:
ProcessCount=$(ps -ef | grep plex | wc -l)
Aufgrund dieser Zeile würde ich mal meinen, dass Dein Prozess / Dienst so heißt.
Gib halt mal:
systemctl status plex
Resultat ist immer
-sh: systemctl: command not found
Probier mal
service plex status
Glaub dieser init.d war der Vorgänger
-
@mickym sagte in Einen PI3 durch ioBroker herunterfahren?:
service plex status
Glaub dieser init.d war der Vorgänger
Dasselbe Resultat.
-
@Kusi Dann muss man es wohl so machen wie in dem Script.
Gib mal
ps -ef | grep plex | wc -l
ein. Da sollte dann bei laufendem System eine Zahl > 1 rauskommen.
-
@mickym Wenn Plex läuft, dann kommt eine 2, ansonsten eine 1.
-
@Kusi Genau . so überprüft dass das Script auch.
so nun brauchen wir wahrscheinlich Hilfe - aber im Grunde sieht es nun so aus.
Du führst vom iobroker aus:
exec(ssh admin@192.168.1.10 ps -ef | grep plex | wc -l, function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });
Statt 'Datenpunkte.0.Dienststatus' gibst halt einen Datenpunkt ein, den Du unter 0_userdata.0 selbst angelegt hast.
Dann sollte im iobroker nach ausführen in dem Datenpunkt 1 oder 2 stehen.
-
Statt in einen Datenpunkt was zu schreiben - kannst stdout natürlich auch direkt auf 1 oder 2 überprüfen und irgendwas programmieren. - zum Beispiel einen Eintrag in das iobroker-Log schreiben oder was Du willst.
-
@mickym sagte in Einen PI3 durch ioBroker herunterfahren?:
exec(ssh admin@192.168.1.10 ps -ef | grep plex | wc -l, function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });
Hier fehlen doch noch ein paar Gänsefüsschen?
Ich habe diese eingefügt, ein Fehler wird nicht angezeigt, aber der Datenpunkt wird nicht gefüllt.exec ("ssh admin@192.168.1.10 'ps -ef | grep plex | wc -l', function (error, stdout, stderr) { setState(javascript.0.Eigene_Datenpunkte.Plex_Dienst,stdout); }");
Wozu ist denn die function mit error, stdout und stderr?