[gelöst] Kopieren von Dateien unter Linux mit FHEM

Begonnen von der_da, 27 September 2024, 12:52:54

Vorheriges Thema - Nächstes Thema

der_da

Ich versuche, wie in diesem Thread beschrieben, das Kopieren der Dateien (station-clock.js ...) zu übernehmen, um die automatische Umschaltung zwischen MESZ und MEZ zu realisieren.
Leider klappt das nicht. In meinem Device gibt es dann folgenden Eintrag:

error           {system("cp /opt/fhem/www/pgm2/station-clock.js.sommerzeit /opt/fhem/www/pgm2/station-clock.js")}: -1
Die Dateien gehören fhem:dialout und sind für alle lesbar und schreibbar. Woran kann es liegen?
Auf der Kommandozeile (als Nutzer 'pi') klappt es.

rudolfkoenig

In dem FHEM-Log sollte mehr zum Fehler stehen.
Laeuft FHEM unter dem Benutzer pi?

Otto123

#2
Hi,

sowas klappt bei mir (zum test) in der FHEM Kommandozeile, den Umweg über {system()} braucht man nicht.
"cp /opt/fhem/www/pgm2/yaahm.js /opt/fhem/www/pgm2/willi"
Erfolg testen in der FHEM Kommandozeile
{qx(ls -lha /opt/fhem/www/pgm2/willi)}
Der Aufruf system() Aufruf unter fhem (funktionierendes Beispiel)
{system("cp /opt/fhem/www/pgm2/yaahm.js /opt/fhem/www/pgm2/willi")}liefert immer -1 insofern ist das eine zu erwartende Antwort und wird unabhängig vom Erfolg als Fehler interpretiert.  ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

Zitatsystem[...]liefert immer -1 insofern ist das eine zu erwartende Antwort und wird unabhängig vom Erfolg als Fehler interpretiert.  ;)
Liegt wohl an der $SIG{CHLD} = 'IGNORE'; Zeile in fhem.pl: damit wird der gestartete Prozess nach Beenden vom Kernel weggerraeumt, und wait findet nichts mehr zum Auswerten.
Ich selbst finde das zwar nicht richtig so, aber ich fuerchte, das ist irrelevant :|

der_da

Ottos Hinweis hat mich dazu gebracht noch mal genau zu prüfen und siehe da, das Kopieren klappte sehr wohl, nur die (falsche) Fehlermeldung war störend. Ich habe nun das {system()} drum herum entfernt und schon klappt es auch ohne Fehlermeldung. Manchmal sieht man den Wald vor lauter Bäumen nicht.  ;)
Danke euch. :)

"rm /opt/fhem/www/pgm2/willi"
klappt übrigens auch in der Kommandozeile von FHEM  :))

Otto123

Zitat von: rudolfkoenig am 27 September 2024, 14:30:46Ich selbst finde das zwar nicht richtig so, aber ich fuerchte, das ist irrelevant :|
genau  ;D
Wobei schon schön wäre system() würde was sinnvolles zurückliefern, also: Erfolg / Error
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz