Passer au contenu

Supervisor#

Supervisor est un système de contrôle de processus qui facilite le démarrage, l’arrêt et le redémarrage de votre application Vapor.

Installation#

Supervisor peut être installé via les gestionnaires de paquets sur Linux.

Ubuntu#

sudo apt-get update
sudo apt-get install supervisor

CentOS et Amazon Linux#

sudo yum install supervisor

Fedora#

sudo dnf install supervisor

Configuration#

Chaque application Vapor sur votre serveur doit avoir son propre fichier de configuration. Pour un exemple de projet Hello, le fichier de configuration se trouverait à /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

Comme indiqué dans notre fichier de configuration, le projet Hello se trouve dans le dossier personnel de l’utilisateur vapor. Assurez-vous que directory pointe vers le répertoire racine de votre projet, là où se trouve le fichier Package.swift.

Le drapeau --env production désactivera la journalisation détaillée (verbose logging).

Environnement#

Vous pouvez exporter des variables vers votre application Vapor avec supervisor. Pour exporter plusieurs valeurs d’environnement, mettez-les toutes sur une seule ligne. Comme le précise la documentation de Supervisor :

Les valeurs contenant des caractères non alphanumériques doivent être entourées de guillemets (par exemple KEY="val:123",KEY2="val,456"). Dans les autres cas, entourer les valeurs de guillemets est optionnel mais recommandé.

environment=PORT=8123,ANOTHERVALUE="/something/else"

Les variables exportées peuvent être utilisées dans Vapor grâce à Environment.get

let port = Environment.get("PORT")

Démarrage#

Vous pouvez maintenant charger et démarrer votre application.

supervisorctl reread
supervisorctl add hello
supervisorctl start hello

Note

La commande add peut avoir déjà démarré votre application.

Modifier cette page