Zum Inhalt springen
Deploy
Dokumentation durchsuchen

Queue-Worker und Daemons mit Supervisor betreiben

Halte Queue-Worker und andere dauerhaft laufende Prozesse mit Supervisor am Leben. Füge Prozesse hinzu, sieh den Live-Status, starte sie neu und lies ihr Log.

Als Markdown ansehen Aktualisiert am 7. Oktober 2026

Auf der Seite Prozesse eines Servers verwaltest du dauerhaft laufende Prozesse unter Supervisor. Ein Prozess ist ein Befehl, der die ganze Zeit laufen soll, etwa ein Laravel-Queue-Worker, Horizon, Reverb oder ein Node.js-Server. Supervisor startet ihn beim Hochfahren des Servers und startet ihn erneut, wenn er stoppt oder abstürzt. Auf dieser Seite fügst du Prozesse hinzu, siehst, ob sie laufen, stoppst, startest oder startest sie neu und liest ihre Ausgabe.

Die Seite gibt es auf App-Servern, Webservern und Worker-Servern.

Die Seite Prozesse mit einem Queue-Worker, der zwei Prozesse ausführt
Prozesse unter Supervisor

Einen Prozess hinzufügen

  1. Öffne den Server und wähle in der Seitenleiste Prozesse.
  2. Klicke auf Prozess hinzufügen.
  3. Fülle das Formular aus (die Felder sind unten erklärt).
  4. Klicke auf Hinzufügen.

Vimonto Deploy schreibt ein Supervisor-Programm für den Prozess, startet ihn und wartet, bis er läuft. Währenddessen zeigt die Zeile Wird hinzugefügt, danach den Live-Status.

Feld Standard Bedeutung
Name Ein Name, an dem du den Prozess erkennst, etwa „Queue-Worker“. Höchstens 60 Zeichen.
Befehl Der auszuführende Befehl in einer Zeile, etwa php artisan queue:work --sleep=3 --tries=3. Pipes und Variablen funktionieren wie eingegeben.
Verzeichnis das Home-Verzeichnis des Benutzers Wo der Befehl startet: ein vollständiger Pfad, etwa /home/vimonto/example.com/current.
Ausführen als der Systembenutzer Der Systembenutzer (standardmäßig vimonto) oder root.
Prozesse 1 Wie viele Kopien des Befehls parallel laufen, von 1 bis 64.
Startzeit (s) 1 Wie lange er laufen muss, um als gestartet zu gelten. Ein Prozess, der früher endet, gilt als fehlgeschlagener Start.
Stoppzeit (s) 15 Wie lange auf ein sauberes Beenden gewartet wird, bevor der Prozess abgeschossen wird.
Stoppsignal TERM Das Signal zum Stoppen des Prozesses: TERM, HUP, INT, QUIT, KILL, USR1 oder USR2.

Beispiel: ein Laravel-Queue-Worker

Feld Wert
Name Queue-Worker
Befehl php artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
Verzeichnis /home/vimonto/example.com/current
Ausführen als vimonto
Prozesse 2

Verwende das Verzeichnis current einer Site, nicht ein bestimmtes Release, damit der Worker immer den Code ausführt, der live ist. Bei einer isolierten Site gehören die Dateien dem eigenen Benutzer der Site; füge ihre Worker auf der Queue-Seite der Site hinzu, die sie unter dem richtigen Benutzer ausführt.

Was bedeuten die Status?

Der Status kommt direkt von Supervisor. Er wird beim Öffnen der Seite abgerufen; klicke auf Status aktualisieren, um ihn erneut abzurufen. Nachdem du einen Prozess hinzugefügt, geändert, gestoppt, gestartet oder neu gestartet hast, ruft die Seite ihn danach von selbst ab.

Status Bedeutung
Läuft Alle Prozesse laufen.
Startet Supervisor startet den Prozess und wartet, bis die Startzeit verstrichen ist.
Wird gestoppt Der Prozess hat sein Stoppsignal erhalten und fährt herunter.
Gestoppt Der Prozess wurde gestoppt und läuft nicht.
Fehlgeschlagen Mindestens ein Prozess hat sich beendet, konnte nicht starten oder stürzt immer wieder ab. Öffne das Log, um den Grund zu sehen.
Unbekannt Supervisor kennt den Prozess nicht, zum Beispiel weil er von Hand entfernt wurde.

Laufen nur einige Kopien, zeigt der Status eine Anzahl, etwa Läuft 1/2.

Einen Prozess stoppen, starten und neu starten

Verwende die Schaltflächen in der Zeile des Prozesses:

  • Stoppen stoppt alle Kopien des Prozesses, bis du ihn wieder startest. Ein Neustart des Servers startet ihn wieder.
  • Starten erscheint, sobald ein Prozess gestoppt ist, und startet ihn wieder.
  • Neu starten stoppt und startet alle Kopien, etwa um neuen Code oder eine geänderte .env zu laden.

Jede Aktion läuft als Job, den du auf der Seite Aktivität verfolgen kannst. Pro Prozess läuft jeweils nur eine dieser Aktionen.

Das Log lesen

Klicke auf Log, um die letzten 300 Zeilen der Ausgabe des Prozesses zu sehen (Standardausgabe und Fehler zusammen), beim Klicken vom Server abgerufen. Supervisor schreibt die Ausgabe nach /var/log/vimonto/daemon-{id}.log und behält bis zu 10 MB pro Datei, mit drei älteren Dateien.

Einen Prozess bearbeiten

Öffne das Aktionsmenü (⋯) und wähle Bearbeiten. Ändere die Felder und klicke auf Speichern. Vimonto Deploy schreibt das Supervisor-Programm neu und startet den Prozess mit den neuen Einstellungen neu.

Schlägt das Hinzufügen oder Ändern eines Prozesses fehl, zeigt die Zeile Fehlgeschlagen; öffne das Aktionsmenü und wähle Erneut versuchen.

Einen Prozess entfernen

Öffne das Aktionsmenü (⋯), wähle Entfernen und bestätige mit Prozess entfernen. Der Prozess wird gestoppt, sein Supervisor-Programm und sein Log werden gelöscht, und er startet nicht mehr.

Wie Prozesse mit Sites zusammenhängen

Die Seite Prozesse zeigt alle Supervisor-Prozesse auf dem Server, auch die, die zu Sites gehören:

  • Queue-Worker, die du auf der Seite Queues und Scheduler einer Site hinzufügst. Diese Seite bietet ein Formular speziell für Laravel-Worker (Verbindung, Queue, Timeout, Versuche, Speicher) und baut den Befehl für dich.
  • Prozesse von Site-Features, etwa Horizon, Reverb, Pulse oder Inertia SSR, die ein Site-Feature anlegt, wenn du es einschaltest.

Diese Prozesse erscheinen hier mit ihrem Status, ihrem Log und den Schaltflächen Stoppen, Starten und Neu starten. Prozesse eines Site-Features tragen ein Badge Über …, etwa Über Horizon, und haben hier kein Aktionsmenü: Ändere sie über das Feature im Site-Header und schalte das Feature aus, um sie zu entfernen. Einen Worker, den du selbst hinzugefügt hast, änderst oder entfernst du auf der Seite der Site oder hier.

Häufig gestellte Fragen

Was ist der Unterschied zwischen einem Prozess und einem geplanten Job?

Ein Prozess läuft die ganze Zeit und wird neu gestartet, wenn er stoppt. Ein geplanter Job führt einen Befehl zu festen Zeiten aus, etwa jede Minute oder jede Nacht, und beendet sich dann.

Mein Prozess zeigt immer wieder Fehlgeschlagen. Was sollte ich prüfen?

Öffne das Log. Häufige Ursachen sind ein falsches Verzeichnis, ein Befehl, der nicht gefunden wird, weil er einen vollständigen Pfad braucht, ein fehlender Wert in der .env oder ein Befehl, der sich sofort beendet, statt im Vordergrund zu laufen. Supervisor braucht einen Befehl, der weiterläuft; starte ihn nicht mit & oder einer Option --daemon im Hintergrund.

Sollte ein Prozess als root laufen?

Selten. Führe Prozesse als Systembenutzer aus, außer der Befehl braucht wirklich root. So kann ein Fehler in deiner Anwendung nicht den Rest des Servers verändern.

Kann ich eine Node.js-Anwendung als Prozess ausführen?

Ja. Verwende einen Befehl wie npm run start oder node server.js mit dem Verzeichnis der Anwendung. Bei einer Node.js-Site richtet die eigene Seite Prozesse der Site das für dich ein.