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.

Einen Prozess hinzufügen
- Öffne den Server und wähle in der Seitenleiste Prozesse.
- Klicke auf Prozess hinzufügen.
- Fülle das Formular aus (die Felder sind unten erklärt).
- 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
.envzu 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.