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.

Aggiungere un processo
- Apri il server e scegli Processi nella barra laterale.
- Clicca su Aggiungi processo.
- Compila il modulo (i campi sono spiegati più sotto).
- 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
.envmodificato.
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.