mirror of https://github.com/vapor/docs.git
72 lines
2.3 KiB
Markdown
72 lines
2.3 KiB
Markdown
# Supervisor
|
||
|
||
[Supervisor](http://supervisord.org)は、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`のホームフォルダに配置されています。`directory`が`Package.swift`ファイルのあるプロジェクトのルートディレクトリを指していることを確認してください。
|
||
|
||
`--env production`フラグは冗長なログを無効にします。
|
||
|
||
### 環境変数 {#environment}
|
||
|
||
supervisorを使ってVaporアプリに変数をエクスポートできます。複数の環境値をエクスポートする場合は、すべて1行に記述します。[Supervisorドキュメント](http://supervisord.org/configuration.html#program-x-section-values)によると:
|
||
|
||
> 英数字以外の文字を含む値は引用符で囲む必要があります(例: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`コマンドはすでにアプリを起動している可能性があります。 |