コンテンツにスキップ

Supervisor

Supervisorは、Vaporアプリの起動、停止、再起動を簡単に行えるプロセス制御システムです。

インストール

SupervisorはLinuxのパッケージマネージャーからインストールできます。

Ubuntu

sudo apt-get update
sudo apt-get install supervisor

CentOSとAmazon Linux

sudo yum install supervisor

Fedora

sudo dnf install supervisor

設定

サーバー上の各Vaporアプリには独自の設定ファイルが必要です。例としてHelloプロジェクトの場合、設定ファイルは/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

設定ファイルで指定されているように、Helloプロジェクトはユーザーvaporのホームフォルダに配置されています。directoryPackage.swiftファイルのあるプロジェクトのルートディレクトリを指していることを確認してください。

--env productionフラグは冗長なログを無効にします。

環境変数

supervisorを使ってVaporアプリに変数をエクスポートできます。複数の環境値をエクスポートする場合は、すべて1行に記述します。Supervisorドキュメントによると:

英数字以外の文字を含む値は引用符で囲む必要があります(例:KEY="val:123",KEY2="val,456")。それ以外の場合、値を引用符で囲むことは任意ですが推奨されます。

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

エクスポートされた変数は、VaporでEnvironment.getを使用して利用できます。

let port = Environment.get("PORT")

起動

これでアプリをロードして起動できます。

supervisorctl reread
supervisorctl add hello
supervisorctl start hello

Note

addコマンドはすでにアプリを起動している可能性があります。