[gelöst] Rückmeldung -1 nach externem Skriptaufruf mit system

Begonnen von Gernott, 20 September 2015, 09:58:11

Vorheriges Thema - Nächstes Thema

Gernott

Hallo

Ich rufe in einem DOIF folgende Anweisung auf:


(
{system "/home/pi/cam/cam1_motion.sh on &"}
)


Die Anweisung wird korrekt abgearbeitet und das Skript ebenso, allerdings steht danach im Log:

2015.09.20 09:54:25.813 5: Cmd: >{system "/home/pi/cam/cam1_motion.sh on &"}<
2015.09.20 09:54:25.859 2: act_on_CAM_motion_set: {system "/home/pi/cam/cam1_motion.sh off &"}: -1


Im DOIF erscheint diese Meldung auch im error-Reading als
{system "/home/pi/cam/cam1_motion.sh off &"}: -1

Hat jemand einen Rat, woran das liegt und wie man diese Meldung wegbekommt?

Viele Grüße
G.

Hollo

Stichwort: "Returncode Bash Script"

Was gibt denn Dein Script bei erfolgreicher/fehlerhafter Ausführung zurück?  ;D
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Gernott

Zitat von: Hollo am 20 September 2015, 12:23:14
Stichwort: "Returncode Bash Script"

Was gibt denn Dein Script bei erfolgreicher/fehlerhafter Ausführung zurück?  ;D
Hallo Hollo

Guter Hinweis, danke. Es liegt offenbar am &, um den Prozeß im Hintergrund laufen zu lassen.
Ohne dieses gibt es keine Rückgabe in der ssh-Kommandozeile. Mit diesem & am Ende kommt dann z.B. die Ausgabe der Jobnummer und der PID "[1] 16833", was vermutlich zu diesem Fehler führt.

Hast Du eine Idee, wie man das lösen kann. Das Skript läuft einige Sekunden und soll FHEM nicht blockieren.

Gruß
G.

Hollo

Ich weiss nicht, ob das aus fhem heraus funktioniert, aber Du könntest versuchen, alle Ausgaben des Scriptes "wegzuschmeissen"... &>/dev/null

FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

P.A.Trick

Zitat von: Hollo am 20 September 2015, 16:58:56
Ich weiss nicht, ob das aus fhem heraus funktioniert, aber Du könntest versuchen, alle Ausgaben des Scriptes "wegzuschmeissen"... &>/dev/null

Das klappt nicht! Eim einfachsten ist einen von den beiden anderen Perl System Kommandos zu nehmen!

Nimm mal

qx(command)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Gernott

Ich habe gerade mal qx probiert:
Beim Aufruf in der Kommandozeile von FHEM
{qx("/home/pi/cam/cam1_motion.sh off &")}

steht im Log ohne Zeitangabe:
sh: 1: /home/pi/cam/cam1_motion.sh off &: not found

Lasse ich die Anführungszeichen weg:
{qx(/home/pi/cam/cam1_motion.sh off &)}
schmierte mein FHEM ab und im Log fand sich
/home/pi/cam/cam1_motion.sh: Zeile 42: 17380 Beendet

Danach ließ sich FHEM nur über das killen der Prozesse wiederbeleben.

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn


rapster

das ist dein perl Rückgabewert, das sollte helfen:
(
{system "/home/pi/cam/cam1_motion.sh on &";;0}
)

Gernott

Zitat von: rapster am 20 September 2015, 19:42:21
das ist dein perl Rückgabewert, das sollte helfen:
(
{system "/home/pi/cam/cam1_motion.sh on &";;0}
)


Genial, nun geht es ohne Fehlmeldung. Besten Dank!

Gruß
G.