vapor-docs/docs/deploy/systemd.ja.md

66 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Systemd
Systemdは、ほとんどのLinuxディストリビューションにおけるデフォルトのシステムおよびサービスマネージャーです。通常はデフォルトでインストールされているため、サポートされているSwiftディストリビューションでは追加のインストールは必要ありません。
## 設定 {#configure}
サーバー上の各Vaporアプリには独自のサービスファイルが必要です。例えば`Hello`プロジェクトの場合、設定ファイルは`/etc/systemd/system/hello.service`に配置されます。このファイルは以下のようになります:
```sh
[Unit]
Description=Hello
Requires=network.target
After=network.target
[Service]
Type=simple
User=vapor
Group=vapor
Restart=always
RestartSec=3
WorkingDirectory=/home/vapor/hello
ExecStart=/home/vapor/hello/.build/release/App serve --env production
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=vapor-hello
[Install]
WantedBy=multi-user.target
```
設定ファイルで指定されているように、`Hello`プロジェクトはユーザー`vapor`のホームフォルダーに配置されています。`WorkingDirectory`が`Package.swift`ファイルがあるプロジェクトのルートディレクトリを指していることを確認してください。
`--env production`フラグは詳細なログ出力を無効にします。
### 環境変数 {#environment}
systemd経由で変数をエクスポートする方法は2つあります。すべての変数が設定された環境ファイルを作成する方法
```sh
EnvironmentFile=/path/to/environment/file1
EnvironmentFile=/path/to/environment/file2
```
または、`[service]`セクションの下のサービスファイルに直接追加する方法:
```sh
Environment="PORT=8123"
Environment="ANOTHERVALUE=/something/else"
```
エクスポートされた変数は、`Environment.get`を使用してVaporで使用できます
```swift
let port = Environment.get("PORT")
```
## 起動 {#start}
rootとして以下のコマンドを実行することで、アプリのロード、有効化、開始、停止、再起動ができます。
```sh
systemctl daemon-reload
systemctl enable hello
systemctl start hello
systemctl stop hello
systemctl restart hello
```