sytem.Exec und "&"

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Bastelhermi
Beiträge: 25
Registriert: 24.01.2018, 21:24
System: Alternative CCU (auf Basis OCCU)
Wohnort: 01936

sytem.Exec und "&"

Beitrag von Bastelhermi » 12.07.2021, 14:49

Hallo

ist es richtig, wenn ich (oder soll ich sogar) an einen Aufrauf z.B.

Code: Alles auswählen

!! Ausgabe auf USB
system.Exec("echo " #device.Name() #"  "  #Daten  #"  "  #Datum  #" >>/media/usb1/XXXXXX");
am Ende noch " & " dranhänge, dass dann die Ausgabe im Hintergrund abläuft?
Also bei fehlendem USB-Stick nicht alles zum Absturz oder Fehler kommt?

Ich habe:
Raspi 3b
Aktuelle Firmwareversion: 3.51.6.20200621

BastelHermi
Zuletzt geändert von alchy am 14.07.2021, 11:27, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: sytem.Exec und "&"

Beitrag von dtp » 15.07.2021, 16:23

Korrekt. Geht aber meines Wissens nach nur bei der Raspberrymatic so. Oder hat eQ-3 das mittlerweile in die originale FW implementiert?

Ich nutze für alle derartigen Aufrufe CUxD. Da bin ich dann unabhängig von der ReGaHSS. Selbst, wenn es zu einem Absturz kommt, wird der Befehl über CUxD noch weiter ausgeführt.

system.Exec läut aber seit vielen Jahren stabil. Das war früher anders.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

frd030
Beiträge: 3575
Registriert: 14.07.2019, 20:49
System: CCU
Hat sich bedankt: 831 Mal
Danksagung erhalten: 532 Mal

Re: sytem.Exec und "&"

Beitrag von frd030 » 15.07.2021, 17:59

dtp hat geschrieben:
15.07.2021, 16:23
Korrekt. Geht aber meines Wissens nach nur bei der Raspberrymatic so. Oder hat eQ-3 das mittlerweile in die originale FW implementiert?
system.Exec läut aber seit vielen Jahren stabil. Das war früher anders.
Die Original FW hat den Bug-Fix von Jens übernommen, d.h. das & funktioniert dort auch inzwischen fehlerfrei bei System.Exec, das auch stabil scheint, jedenfalls auf meiner CCU3.

Man sollte nur, unabhängig vom System drauf achten, dass die Befehle, die man aufruft und in den Hintergrund schickt, irgendwann doch einen Timeout haben, was den Hintergrundprozess dann auch wieder löscht. Sonst bleiben irgendwann zunehmend Zombies übrig und die sind nie auf Dauer gut, wie wir aus Hollywood "Dokumentarfilmen" wissen. :wink:

Die ReGaHSS steht aber wenigsten nicht und wartet auf Godot, so lange der besagte Timeout nicht abgelaufen ist.

Bastelhermi
Beiträge: 25
Registriert: 24.01.2018, 21:24
System: Alternative CCU (auf Basis OCCU)
Wohnort: 01936

Re: sytem.Exec und "&"

Beitrag von Bastelhermi » 16.07.2021, 09:46

Hallo,

Dank an euch beide für die Antwort.

Ich werde mich wegen "Timeout" der Hintergrundprozesse noch schlau machen müssen.

Schönes WE!
Batelhermi

frd030
Beiträge: 3575
Registriert: 14.07.2019, 20:49
System: CCU
Hat sich bedankt: 831 Mal
Danksagung erhalten: 532 Mal

Re: sytem.Exec und "&"

Beitrag von frd030 » 16.07.2021, 10:42

Bastelhermi hat geschrieben:
16.07.2021, 09:46
Ich werde mich wegen "Timeout" der Hintergrundprozesse noch schlau machen müssen.
Nur um Mißverständnisse zu vermeiden. Der Befehl oder das Programm, das Du per System.Exec aufrufst, sollte sich möglichst irgendwann selbst beenden. Nicht alle bieten eine solche Option, wget, das häufig genutzt wird, z.B. schon. Einfach mal die Hilfe in einer SSH Session zum Befehl anschauen, ob es eine Option dazu gibt.

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: sytem.Exec und "&"

Beitrag von blackhole » 16.07.2021, 11:07

Ihr doktert einem Symptom, dass man einfach vermeiden kann, in dem man vor dem Schreiben prüft, ob überhaupt ein Stick gemountet ist.
Ihr schwingt doch auch nicht einfach Pinsel, ohne vorher zu prüfen, ob überhaupt ein zu bemalendes Objekt vorhanden ist, oder?

(Ich finde solche Vergleiche übrigens ganz schrecklich.)

frd030
Beiträge: 3575
Registriert: 14.07.2019, 20:49
System: CCU
Hat sich bedankt: 831 Mal
Danksagung erhalten: 532 Mal

Re: sytem.Exec und "&"

Beitrag von frd030 » 16.07.2021, 13:00

blackhole hat geschrieben:
16.07.2021, 11:07
Ihr doktert einem Symptom, dass man einfach vermeiden kann, in dem man vor dem Schreiben prüft, ob überhaupt ein Stick gemountet ist.
Das meinte ich mit "Programm"! Natürlich kann und sollte man prüfen, ob der Stick gemounted ist.
@TE: Das macht man am einfachsten, indem man ein Shell-Script erstellt (z.B. in /usr/local/addons, dass man per System.Exec aufruft.
In besagtem Skript prüft man zunächst, ob der Stick gemounted ist, wenn nicht dann exit, und dann erst schreibt man drauf...

HMNutzer
Beiträge: 708
Registriert: 24.10.2016, 17:18
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 150 Mal
Danksagung erhalten: 22 Mal

Re: sytem.Exec und "&"

Beitrag von HMNutzer » 18.07.2021, 16:13

Servus,

habe eben meinen Thread zu dem Thema gefunden; vielleicht hilft das noch:
viewtopic.php?f=19&t=62670#p619263
Viele Grüße

Martin

RaspberryMatic auf ESXi 7 mit RPI-RF-MOD/HB-RF-ETH. Div. HM und HMIP Funkkomponenten im Holzständerhaus

Bastelhermi
Beiträge: 25
Registriert: 24.01.2018, 21:24
System: Alternative CCU (auf Basis OCCU)
Wohnort: 01936

Re: sytem.Exec und "&"

Beitrag von Bastelhermi » 19.07.2021, 13:23

Hallo

Nochmals Dank für eure Hilfe.
habe eben meinen Thread zu dem Thema gefunden; vielleicht hilft das noch:
viewtopic.php?f=19&t=62670#p619263
Durch den Thread werde ich mich durcharbeiten müssen.

@frd030
Das macht man am einfachsten, indem man ein Shell-Script erstellt (z.B. in /usr/local/addons, dass man per System.Exec aufruft.
In besagtem Skript prüft man zunächst, ob der Stick gemounted ist, wenn nicht dann exit, und dann erst schreibt man drauf...
Wird da (wie??) auch erkannt, ob der gemountete Stick noch schreibwillig ist oder plötzlich nicht mehr will?

Bastelhermi

frd030
Beiträge: 3575
Registriert: 14.07.2019, 20:49
System: CCU
Hat sich bedankt: 831 Mal
Danksagung erhalten: 532 Mal

Re: sytem.Exec und "&"

Beitrag von frd030 » 19.07.2021, 21:22

Bastelhermi hat geschrieben:
19.07.2021, 13:23
Wird da (wie??) auch erkannt, ob der gemountete Stick noch schreibwillig ist oder plötzlich nicht mehr will?
Man kann das auch testen, indem man eine Datei schreibt und zurückliest.
Du mußt Dich dazu natürlich auch mit Shellprogrammierung auseinandersetzen - es gibt nichts umsonst...

Antworten

Zurück zu „HomeMatic allgemein“