Supervisor¶
Supervisor è un sistema di controllo dei processi che semplifica l'avvio, l'arresto e il riavvio della tua app Vapor.
Installazione¶
Supervisor può essere installato tramite i package manager su Linux.
Ubuntu¶
sudo apt-get update
sudo apt-get install supervisor
CentOS e Amazon Linux¶
sudo yum install supervisor
Fedora¶
sudo dnf install supervisor
Configurazione¶
Ogni app Vapor sul tuo server dovrebbe avere il proprio file di configurazione. Per un progetto di esempio chiamato Hello, il file di configurazione si troverebbe in /etc/supervisor/conf.d/hello.conf
[program:hello]
command=/home/vapor/hello/.build/release/App serve --env production
directory=/home/vapor/hello/
user=vapor
stdout_logfile=/var/log/supervisor/%(program_name)s-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)s-stderr.log
Come specificato nel file di configurazione, il progetto Hello si trova nella cartella home dell'utente vapor. Assicurati che directory punti alla directory radice del tuo progetto, dove si trova il file Package.swift.
Il flag --env production disabiliterà il logging prolisso.
Variabili d'Ambiente¶
Puoi esportare variabili verso la tua app Vapor tramite Supervisor. Per esportare più valori d'ambiente, inseriscili tutti su una sola riga. Come indicato nella documentazione di Supervisor:
I valori contenenti caratteri non alfanumerici devono essere racchiusi tra virgolette (es. KEY="val:123",KEY2="val,456"). Negli altri casi le virgolette sono opzionali ma consigliate.
environment=PORT=8123,ANOTHERVALUE="/something/else"
Le variabili esportate possono essere usate in Vapor con Environment.get
let port = Environment.get("PORT")
Avvio¶
Ora puoi caricare e avviare la tua app.
supervisorctl reread
supervisorctl add hello
supervisorctl start hello
Nota
Il comando add potrebbe aver già avviato la tua app.