Back to Vapor

Supervisor

docs/deploy/supervisor.ja.md

latest2.3 KB
Original Source

Supervisor

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

インストール {#install}

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

Ubuntu

sh
sudo apt-get update
sudo apt-get install supervisor

CentOSとAmazon Linux {#centos-and-amazon-linux}

sh
sudo yum install supervisor

Fedora

sh
sudo dnf install supervisor

設定 {#configure}

サーバー上の各Vaporアプリには独自の設定ファイルが必要です。例としてHelloプロジェクトの場合、設定ファイルは/etc/supervisor/conf.d/hello.confに配置されます。

sh
[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フラグは冗長なログを無効にします。

環境変数 {#environment}

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

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

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

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

swift
let port = Environment.get("PORT")

起動 {#start}

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

sh
supervisorctl reread
supervisorctl add hello
supervisorctl start hello

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