Denke auch das Uwe (CUxD) hier die Exit-Codes vom ausgeführten Befehl zurückgibt.
Hier mal für wget:
https://www.man7.org/linux/man-pages/ma ... XIT_STATUS
Moderator: Co-Administratoren
Denke auch das Uwe (CUxD) hier die Exit-Codes vom ausgeführten Befehl zurückgibt.
Das ist wohl ne Glaubensfrage auf die es m.E. keine klare Antwort gibt.
Code: Alles auswählen
! Senden
dom.GetObject("CUxD.CUX2801001:2.CMD_EXEC").State("extra/curl --max-time 5 -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid);
Code: Alles auswählen
string stdout;
string stderr;
system.Exec("timeout 5 curl --max-time 5 -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid, &stdout, &stderr);
Hier die Curl Exit-Codes: https://everything.curl.dev/cmdline/exitcode.htmlBaxxy hat geschrieben: ↑13.09.2025, 11:44Denke auch das Uwe (CUxD) hier die Exit-Codes vom ausgeführten Befehl zurückgibt.
Hier mal für wget:
https://www.man7.org/linux/man-pages/ma ... XIT_STATUS
ja, "--max-time 5" reicht bei curl (anders als bei wget, das macht mit seinen timeout options nicht das was man zunaechst erwarten wuerde), wenn curl da mit timeout rausfliegt dann bekommst du eben 28 im returncode(=system.Exec(...) ) den du wieder rausgeworfen hast. Falls alles normal geklappt hat, ist returncode = 0. Ich bin immer der Auffassung man sollte gerade um die Fehlerfaelle sich ausreichend kuemmern und entsprechend drauf reagieren.grmpf hat geschrieben: ↑13.09.2025, 12:00wobei ich beim Zweiten eher denke dass timeout und max-time doppeltgemoppelt sind?Code: Alles auswählen
string stdout; string stderr; system.Exec("timeout 5 curl --max-time 5 -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid, &stdout, &stderr);
Ok, beim Aufruf mittels CUxD CMD_EXEC blockiert die CCU nicht.
Weil Dein Aufruf über die Befehlszeile aus historischen Gründen mittels extra/curl erfolgt. Nur curl funktioniert auch. Am Ende macht das aber keinen Unterschied.
wget nutze ich seit langem nicht mehr. Am Anfang hatte ich da mal Wetterdaten aus dem Netz gefischt aber das Verhältnis der CCU-Stabilität zum Ertrag war am Ende zu schlecht.
joh, geht mit angehaengtem "&" ganz am Ende des Befehls + parameter auch, also "curl ... foo ... bar&"
Da bin ich auch schon drauf reingefallen. Das hilft Dir nur bei fire&forget-Aufrufen (HTTP-Befehle an Aktoren, Telegram etc.). Fragst Du Daten ab, Die Du weiterverarbeiten willst, brauchst Du stdout.