Stand 14. Dez. 2018 Daemon Prozesse unter Kontrolle des Lambda-Servers. Geeignet sind Prozesse, die mit dem Faxserver gestartet und beendet werden können. Ein Daemon benötigt ein eigenes Verzeichnis unter $FAXROOT, empfohlen wird ein Verzeichnis unterhalb von $FAXROOT/daemons. Unter Windows sind nur Executables mit Aufrufparametern zugelassen, unter Linux/Unix muss der Daemon ausführbar sein. Wenn Sie ein Shell-script einsetzen wollen, muss in der ersten Zeile ein geeigneter Shebang stehen, z.B. #!/bin/bash . Ein : (Doppelpunkt) in der ersten Zeile ist nicht ausreichend. Im Omega können mehrere Daemonen konfiguriert werden, ausgewertet werden die Omega Konfigurationsvariablen DAEMON0 ... DAEMON9999, jedoch können auf einem Lambda insgesamt maximal 200 Prozesse laufen. DAEMON0n (führende 0) wird ignoriert. DAEMONn wird ein Wert daemonuser@alphahost zugewiesen. In der Konfiguration dieses Benutzers (EXTRA in den Administratoroberflächen) werden zwingend drei Variablen benötigt: DM_HOST lambdahost # Name des LambdaServers, unter dessen Kontrolle der # Daemon läuft DM_DIR directory # Verzeichnis unter FAXROOT (immer Unix-Syntax) # z.B meinDaemon oder daemon/ersterDaemon # maximal 63 Zeichen, keine Leerzeichen DM_CMD name # Name des Daemon-Prozesses (Windows: ohne .exe) # maximal 63 Zeichen, keine Leerzeichen Anstelle eines Scripts kann in DM_LCMD (und folgende) ein Kommando mit Argumenten definiert werden. Dieses muss nicht selbst in der FAXROOT liegen, DM_DIR ist das Arbeitsverzeichnis. DM_CMD ist dann nur noch die eindeutige Kennung des Prozesses. Dieses Vorgehen wird empfohlen und ist auf Windows oft die einzige Möglichkeit, da aus einem Batch gestartete Prozesse vom lambda nicht beendet werden können. Es wird nach aufeinander folgenden Parametern DM_LCMD, DM_LCMD0, DM_LCMD1,... gesucht, bis die Serie abbricht, maximal bis DM_LCMD99. Ein '\' am Ende der Zeile wirkt als Fortsetzungszeichen, ansonsten wird der nächste Parameter mit einem Leerzeichen angehängt und bildet ein (weiteres) Aufrufargument. Eine Zeile kann maximal 80 Zeichen aufnehmen. Beispiel: DM_LCMD=C:/FAXSERVER/python/runtime/python.exe DM_LCMD0=C:/FAXSERVER/python/papageno/daemons/sms\ DM_LCMD1=collect/main.py Daraus ergibt sich der Aufruf C:/FAXSERVER/python/runtime/python.exe C:/FAXSERVER/python/papageno/daemons/smscollect/main.py Dem Daemon wird die Umgebungsvariable CF_DAEMON=daemonuser@alphahost vererbt, so dass dieser weitere frei definierbare Konfigurationsvariablen des daemonusers benutzen kann. Achten Sie im Daemon ggfs. darauf, den richtigen Alphahost anzusprechen. Bekannte Beschränkungen: Jeder Daemon muss einem eigenen Papageno-Benutzer zugeordnet sein. Jeder Daemon muss in einem separaten Verzeichnis laufen. Der Name des Daemons muss pro Lambda eindeutig sein, und darf nicht mit den bekannten Papageno-Servern oder anderen Lambda-Prozessen (l_ps: Spalte CMD) übereinstimmen. Die Startreihenfolge hängt von der lexikalischen Sortierung von o_get_cf_ll ab (DAEMON10 wird vor DAEMON2 gefunden). Fehlersuche: l_startdaemons löst o_get_config_ll aus, im Omega Logbuch (o_get_kzg) sichtbar. Wenn ein DAEMONn gefunden wird, sucht der lambda auf dem angegebenen Alphahost nach den Konfigurationsvariablen, im Alpha Logbuch (a_get_kzg) erscheint a_get_usrconf(user, DM_HOST) usw. Im nohup.out des Lambda-Servers erscheinen Fehlermeldungen, wenn die Alpha- Variablen nicht vollständig angegeben sind (DM_HOST, DM_DIR, DM_CMD). In $FAXROOT/ wird eine Datei nohup.out angelegt, in der Fehlerausgaben des Daemons zu finden sind.