Vai al contenuto
Deploy
Sfoglia la documentazione

Eseguire queue worker e daemon con Supervisor

Mantieni attivi queue worker e processi di lunga durata con Supervisor: aggiungi un processo, vedine lo stato live, fermalo, avvialo o riavvialo e leggi il log.

Visualizza come Markdown Aggiornato il 7 ottobre 2026

La pagina Processi di un server gestisce i processi di lunga durata sotto Supervisor. Un processo è un comando che deve restare sempre in esecuzione, come un queue worker Laravel, Horizon, Reverb o un server Node.js. Supervisor lo avvia all'accensione del server e lo riavvia quando si ferma o va in crash. Da questa pagina aggiungi processi, vedi se sono in esecuzione, li fermi, li avvii o li riavvii, e leggi il loro output.

La pagina è disponibile su app server, web server e worker server.

La pagina Processi con un queue worker che esegue due processi
Processi sotto Supervisor

Aggiungere un processo

  1. Apri il server e scegli Processi nella barra laterale.
  2. Clicca su Aggiungi processo.
  3. Compila il modulo (i campi sono spiegati più sotto).
  4. Clicca su Aggiungi.

Vimonto Deploy scrive un programma Supervisor per il processo, lo avvia e attende che sia attivo. Nel frattempo la riga mostra Aggiunta in corso, poi lo stato live.

Campo Predefinito Significato
Nome Un nome per riconoscere il processo, ad esempio "Queue worker". Al massimo 60 caratteri.
Comando Il comando da eseguire, su una sola riga, ad esempio php artisan queue:work --sleep=3 --tries=3. Pipe e variabili funzionano così come le scrivi.
Directory la home directory dell'utente Dove parte il comando: un percorso completo, ad esempio /home/vimonto/example.com/current.
Esegui come l'utente di sistema L'utente di sistema (vimonto per impostazione predefinita) o root.
Processi 1 Quante copie del comando girano affiancate, da 1 a 64.
Tempo di avvio (s) 1 Per quanto tempo deve girare per essere considerato avviato. Un processo che termina prima conta come avvio non riuscito.
Tempo di arresto (s) 15 Quanto attendere un arresto pulito prima che il processo venga terminato forzatamente.
Segnale di stop TERM Il segnale inviato per fermare il processo: TERM, HUP, INT, QUIT, KILL, USR1 o USR2.

Esempio: un queue worker Laravel

Campo Valore
Nome Queue worker
Comando php artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
Directory /home/vimonto/example.com/current
Esegui come vimonto
Processi 2

Usa la directory current di un sito, non una release specifica, così il worker esegue sempre il codice live. Per un sito isolato, i file appartengono all'utente proprio del sito; aggiungi i suoi worker dalla pagina delle queue del sito, che li esegue con l'utente giusto.

Cosa significano gli stati?

Lo stato arriva direttamente da Supervisor. Viene recuperato quando apri la pagina; clicca su Aggiorna stato per recuperarlo di nuovo. Dopo che hai aggiunto, modificato, fermato, avviato o riavviato un processo, la pagina lo recupera da sola al termine dell'operazione.

Stato Significato
In esecuzione Tutti i processi sono in esecuzione.
Avvio in corso Supervisor sta avviando il processo e attende che passi il tempo di avvio.
Arresto in corso Il processo ha ricevuto il segnale di stop e si sta chiudendo.
Fermato Il processo è stato fermato e non è in esecuzione.
Non riuscito Almeno un processo è terminato, non è riuscito ad avviarsi o continua ad andare in crash. Apri il Log per capire perché.
Sconosciuto Supervisor non conosce il processo, ad esempio perché è stato rimosso a mano.

Quando gira solo una parte delle copie, lo stato mostra un conteggio, ad esempio In esecuzione 1/2.

Fermare, avviare e riavviare un processo

Usa i pulsanti nella riga del processo:

  • Ferma ferma tutte le copie del processo finché non lo avvii di nuovo. Un riavvio del server lo avvia di nuovo.
  • Avvia compare quando un processo è fermo e lo avvia di nuovo.
  • Riavvia ferma e avvia tutte le copie, ad esempio per caricare nuovo codice o un .env modificato.

Ogni azione viene eseguita come un task che puoi seguire nella pagina attività. Per ogni processo può girare solo una di queste azioni alla volta.

Leggere il log

Clicca su Log per vedere le ultime 300 righe dell'output del processo (output standard ed errori insieme), recuperate dal server al momento del clic. Supervisor scrive l'output in /var/log/vimonto/daemon-{id}.log e conserva fino a 10 MB per file, con tre file precedenti.

Modificare un processo

Apri il menu delle azioni (⋯) e scegli Modifica. Cambia i campi e clicca su Salva. Vimonto Deploy riscrive il programma Supervisor e riavvia il processo con le nuove impostazioni.

Se l'aggiunta o la modifica di un processo non riesce, la riga mostra Non riuscito; apri il menu delle azioni e scegli Riprova.

Rimuovere un processo

Apri il menu delle azioni (⋯), scegli Rimuovi e conferma con Rimuovi processo. Il processo viene fermato, il suo programma Supervisor e il suo log vengono eliminati e non si avvia più.

Come i processi si collegano ai siti

La pagina Processi mostra tutti i processi Supervisor del server, compresi quelli che appartengono ai siti:

  • Queue worker che aggiungi nella pagina queue e scheduler di un sito. Quella pagina offre un modulo pensato per i worker Laravel (connessione, queue, timeout, tentativi, memoria) e costruisce il comando per te.
  • Processi delle funzionalità del sito, come Horizon, Reverb, Pulse o Inertia SSR, che una funzionalità del sito crea quando la attivi.

Questi processi compaiono qui con il loro stato, il loro Log e i pulsanti Ferma, Avvia e Riavvia. I processi di una funzionalità del sito hanno un badge Tramite …, come Tramite Horizon, e qui non hanno un menu delle azioni: modificali tramite la funzionalità nell'intestazione del sito, e disattiva la funzionalità per rimuoverli. Un worker che hai aggiunto tu lo modifichi o lo rimuovi nella pagina del sito o qui.

Domande frequenti

Qual è la differenza tra un processo e un job pianificato?

Un processo gira sempre e viene riavviato quando si ferma. Un job pianificato esegue un comando a orari stabiliti, ad esempio ogni minuto o ogni notte, e poi termina.

Il mio processo continua a mostrare Non riuscito. Cosa devo controllare?

Apri il Log. Le cause comuni sono una Directory sbagliata, un comando non trovato perché richiede un percorso completo, un valore mancante nel .env, o un comando che termina subito invece di restare in primo piano. Supervisor ha bisogno che il comando resti in esecuzione; non avviarlo in background con & o con un'opzione --daemon.

Un processo deve girare come root?

Raramente. Esegui i processi con l'utente di sistema, a meno che il comando non richieda davvero root, così un bug nella tua applicazione non può modificare il resto del server.

Posso eseguire un'applicazione Node.js come processo?

Sì. Usa un comando come npm run start o node server.js con la directory dell'applicazione. Per un sito Node.js, la pagina Processi del sito lo configura per te.