mirror of https://github.com/vapor/docs.git
73 lines
1.8 KiB
Markdown
73 lines
1.8 KiB
Markdown
# Supervisor
|
|
|
|
[Supervisor](http://supervisord.org) 是一个进程控制系统,可让你轻松启动、停止和重启你的 Vapor 应用程序。
|
|
|
|
## 安装
|
|
|
|
Supervisor 可以通过 Linux 上的包管理器安装。
|
|
|
|
### Ubuntu
|
|
|
|
```sh
|
|
sudo apt-get update
|
|
sudo apt-get install supervisor
|
|
```
|
|
|
|
### CentOS and Amazon Linux
|
|
|
|
```sh
|
|
sudo yum install supervisor
|
|
```
|
|
|
|
### Fedora
|
|
|
|
```sh
|
|
sudo dnf install supervisor
|
|
```
|
|
|
|
## 配置
|
|
|
|
服务器上的每个 Vapor 应用程序都应该有自己的配置文件。例如 `Hello` 项目,配置文件位于 `/etc/supervisor/conf.d/hello.conf`
|
|
|
|
```sh
|
|
[program:hello]
|
|
command=/home/vapor/hello/.build/release/Run serve --env production
|
|
directory=/home/vapor/hello/
|
|
user=vapor
|
|
stdout_logfile=/var/log/supervisor/%(program_name)-stdout.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)-stderr.log
|
|
```
|
|
|
|
正如我们的配置文件中所指定的, `Hello` 项目位于用户 `vapor` 的主文件夹中。确保 `directory` 指向 `Package.swift` 文件所在项目的根目录。
|
|
|
|
`--env production` 标志会禁用详细日志记录。
|
|
|
|
### 环境
|
|
|
|
你可以使用 supervisor 将变量导出到你的 Vapor 应用程序。要导出多个环境值,请将它们全部放在一行上。根据 [Supervisor 文档](http://supervisord.org/configuration.html#program-x-section-values):
|
|
|
|
> 包含非字母数字字符的值应该用引号括起来(e.g. KEY="val:123",KEY2="val,456")。否则,引用值是可选的,但是推荐使用。
|
|
|
|
```sh
|
|
environment=PORT=8123,ANOTHERVALUE="/something/else"
|
|
```
|
|
|
|
可以在 Vapor 中使用 `Environment.get` 导出变量
|
|
|
|
```swift
|
|
let port = Environment.get("PORT")
|
|
```
|
|
|
|
## 开始
|
|
|
|
你现在可以加载并启动你的应用程序。
|
|
|
|
```sh
|
|
supervisorctl reread
|
|
supervisorctl add hello
|
|
supervisorctl start hello
|
|
```
|
|
|
|
!!! 注意
|
|
`add` 命令可能已经启动了你的应用程序。
|