# Daemons

Lerne, wie du Hintergrundprozesse auf deinem Zhylon-Server konfigurieren und verwalten kannst.

# Übersicht

Daemons, unterstützt von Supervisor (opens new window), dienen dazu, lang laufende Skripte am Leben zu halten. Zum Beispiel könntest du einen Daemon starten, um eine ReactPHP (opens new window)-Anwendung am Laufen zu halten. Wenn der Prozess stoppt, wird Supervisor den Prozess automatisch neu starten.

# Konfiguration von Daemons

Beim Erstellen eines neuen Daemons musst du Zhylon die folgenden Informationen bereitstellen:

  • Befehl: Der Befehl, der vom Daemon ausgeführt werden soll. Zum Beispiel: php artisan websockets:serve.

  • Benutzer: Der Betriebssystembenutzer, der verwendet werden soll, um den Befehl auszuführen. Standardmäßig wird der Benutzer zhylon verwendet.

  • Verzeichnis: Das Verzeichnis, aus dem der Befehl ausgeführt werden soll. Dieses Feld kann leer gelassen werden.

  • Prozesse: Diese Option bestimmt, wie viele Instanzen des Prozesses gleichzeitig laufen sollen.

  • Start-Sekunden: Die Gesamtzahl an Sekunden, die das Programm laufen muss, um den Start als erfolgreich zu betrachten.

  • Stop-Sekunden: Die Anzahl der Sekunden, die Supervisor dem Daemon gewährt, um ihn sanft zu stoppen, bevor eine erzwungene Beendigung erfolgt.

  • Stop-Signal: Das Signal, das verwendet wird, um das Programm zu beenden, wenn ein Stop angefordert wird.

# Manuelles Neustarten von Daemons

Du kannst einen Daemon manuell neu starten, indem du den Befehl sudo -S supervisorctl restart daemon-{id}:* verwendest, wobei {id} die ID des Daemons ist. Wenn die ID des Daemons beispielsweise h:H3hxDfKZE0mHsxTqwN ist, kannst du ihn mit folgendem Befehl neu starten: sudo -S supervisorctl restart daemon-h:H3hxDfKZE0mHsxTqwN:*.

Du kannst diesen Befehl auch innerhalb des Deployment-Skripts deiner Anwendung ausführen, um den Daemon während eines Deployments neu zu starten.

# Logdateien

Zhylon konfiguriert deinen Daemon automatisch so, dass er in eine eigene Logdatei schreibt. Die Logdateien findest du im Verzeichnis /home/zhylon/.zhylon/. Die Logdateien sind nach dem Muster daemon-*.log benannt.

Wenn du die Benutzerisolationsfunktionen von Zhylon verwendest, solltest du zum .zhylon-Verzeichnis innerhalb des Verzeichnisses /home/{username} navigieren, je nachdem, welchem Benutzer der Prozess gehört, um die Logdateien des Daemons zu finden.

# Team-Berechtigungen**

Du kannst einem Mitglied des Teams die Berechtigung erteilen, Daemons zu erstellen und zu verwalten, indem du die Berechtigungen server:create-daemons und server:delete-daemons vergibst.