Autor Thema: LaunchDaemon, nofork und System-Calls via system  (Gelesen 1197 mal)

Offline knueppler

  • Full Member
  • ***
  • Beiträge: 154
LaunchDaemon, nofork und System-Calls via system
« am: 27 Juli 2021, 20:22:23 »
Hallo zusammen,

momentan läuft mein FHEM auf einem MacMini M1.
Ich habe es auch via launchd zum Laufen bekommen, allerdings muss ich da nofork=1 setzen.
Sobald ich das tue, kommen Aufrufe a la system("ls") nicht mehr zurück, sprich, Kommando wird noch ausgeführt, aber dann ist Schluss, keine Response mehr. Dies egal, ob ich FHEM via launchd oder via Kommando-Zeile starte.
Lösche ich das Attribut nofork, dann kommen die System-Calls wieder zurück, aber launchd mag nicht mehr, somit muss ich wieder von Kommando-Zeile starten.
Hat einer ne Idee für mich?

Danke, Christian

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24497
Antw:LaunchDaemon, nofork und System-Calls via system
« Antwort #1 am: 27 Juli 2021, 22:51:06 »
Zitat
Ich habe es auch via launchd zum Laufen bekommen, allerdings muss ich da nofork=1 setzen.
Ist damit ein launchd Attribut oder das FHEM Attribut (https://fhem.de/commandref_modular.html#nofork) gemeint?

Offline knueppler

  • Full Member
  • ***
  • Beiträge: 154
Antw:LaunchDaemon, nofork und System-Calls via system
« Antwort #2 am: 28 Juli 2021, 07:39:45 »
Guten Morgen,

mit nofork ist das FHEM-Attribut gemeint.

Ciao Christian

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24497
Antw:LaunchDaemon, nofork und System-Calls via system
« Antwort #3 am: 28 Juli 2021, 10:28:33 »
Dieses Attribut verhindert, dass FHEM beim Starten sich als Daemon ins Hintergrund verabschiedet.
Es hat keine Auswirkungen bei weiteren Fork-Operationen, und wenn doch, dann indirekt.
Ich vermute/hoffe, dass die Ursache in FHEM-Log protokolliert ist.
Wird ein native-perl verwendet?

Offline knueppler

  • Full Member
  • ***
  • Beiträge: 154
Antw:LaunchDaemon, nofork und System-Calls via system
« Antwort #4 am: 28 Juli 2021, 13:15:10 »
Hi,

ja, native, welches von Apple mit ausgeliefert wird.
Teststellung auf nem MacBookPro M1 zeigen ein anderes Verhalten.
Mit NOFORK=1 kommt system mit -1 zurück, mit NOFORK=0 mit 0.
Im Log der anderen Installation sehe ich leider nix, wenn FHEM nach dem system-Call nicht mehr zurück kommt.
Ich gucke weiter.

Ciao Christian

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24497
Antw:LaunchDaemon, nofork und System-Calls via system
« Antwort #5 am: 28 Juli 2021, 13:48:13 »
Zitat
Mit NOFORK=1 kommt system mit -1 zurück, mit NOFORK=0 mit 0.
Ich wuerde FHEM mit nofork 1 starten, und in der Eingebezeile
{ system("/bin/ls") && $! }
eingeben. Zurueckkommen sollte ERRNO im Klartext, was wiederum weiterhelfen koennte.

Offline knueppler

  • Full Member
  • ***
  • Beiträge: 154
Antw:LaunchDaemon, nofork und System-Calls via system
« Antwort #6 am: 29 Juli 2021, 11:51:31 »
Hallo,

ich habe mal auf der Installation, auf der das passiert, ein wenig rumgespielt:
  • NOFORK=1
  • start von der Kommandozeile mit perl fhem.pl fhem.cfg
  • Kommando in FHEM wie beschrieben abgesetzt
  • Im Logfile erscheint das Directory-Listing
  • FHEM-Oberfläche friert ein
  • CTRL-C in dem Kommando-Fenster
  • FHEM läuft teilweise wieder an
  • Meldung im Browserfenster no childprocess
Momentan vermute ich, dass es mit irgendwelchen Restriktionen in OSX zu tun hat. Allerdings sind an der Stelle beide Maschinen über die Systemsteuerung gleich konfiguriert.