Autor Thema: LaunchDaemon, nofork und System-Calls via system  (Gelesen 762 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: 24363
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: 24363
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: 24363
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.

 

decade-submarginal