Cos'è Supervisor e come configurarlo

Come installare Supervisor e gestire i processi a lunga esecuzione su un server.

Supervisor è un gestore di processi che semplifica l'esecuzione e il monitoraggio di programmi a lunga esecuzione. È particolarmente utile per mantenere attivi i processi in background su un VPS o un server dedicato.

Supervisor è composto da due componenti: supervisord — il processo server che avvia e monitora i processi figli — e supervisorctl, un'interfaccia a riga di comando e web per gestire supervisord.

Installazione

Su Debian e Ubuntu, installa Supervisor dal repository standard:

apt-get install supervisor

Configurazione

Il file di configurazione si trova in /etc/supervisor/supervisord.conf su Debian e Ubuntu, oppure in /etc/supervisord.conf sulle altre distribuzioni.

Per aggiungere un processo, definisci una sezione di programma nel file di configurazione:

[program:worker]
command=/usr/bin/php /var/www/worker.php
stdout_logfile=/var/log/worker.log
autostart=true
autorestart=true
user=www-data
stopsignal=KILL
numprocs=1

Descrizione dei parametri:

  • [program:worker] — il nome del processo.
  • command — percorso dell'eseguibile.
  • stdout_logfile — percorso del file di log per l'output della console.
  • autostart — avvia il processo automaticamente all'avvio di Supervisor.
  • autorestart — riavvia il processo automaticamente in caso di crash.
  • user — l'account utente con cui viene eseguito il processo.
  • stopsignal — il segnale inviato per arrestare il processo.
  • numprocs — il numero di istanze del processo da eseguire.

Dopo aver aggiornato la configurazione, riavvia Supervisor:

/etc/init.d/supervisor restart

Interfaccia web

Supervisor include un'interfaccia web integrata per il monitoraggio e il controllo dei processi. Per abilitarla, togli il commento e configura la sezione [inet_http_server] nel file di configurazione:

[inet_http_server]
port=127.0.0.1:9001
username=some_user_name
password=some_password

Monitoraggio degli eventi

Supervisor dispone di un meccanismo integrato di ascolto degli eventi per ricevere notifiche di errore. Ecco un esempio di configurazione che invia un avviso quando il consumo di memoria supera una soglia:

[eventlistener:memmon]
command=memmon -a 200MB -m error@site.com
events=TICK_60

Aiuto

Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci