Systemd を使用して Gunicorn Web サービスを開始する際に問題が発生しました。

Systemd を使用して Gunicorn Web サービスを開始する際に問題が発生しました。

Systemd を使用して Gunicorn Web サービスを実行する際に問題があります。

以下は実行用に作成されたファイルです。

シェルスクリプトファイル(/home/ubuntu/mata.sh):

#!/usr/bin/env bash

cd /home/ubuntu/workspace/test-api
/home/ubuntu/workspace/mata_venv/bin/gunicorn --workers=4 app:app --bind 0.0.0.0:xxxx

これは私の.serviceファイル(/lib/systemd/system/mata.service)です。

[Unit]
Description=Test API Service
After=multi-user.target
[email protected]

[Service]
User=ubuntu
Type=simple
ExecStart=/home/ubuntu/mata.sh
StandardInput=tty-force

[Install]
WantedBy=multi-user.target

シェルスクリプトの実行自体はうまく機能しますが、実行するとsystemctl status mata.service次のメッセージが表示されます。

Started Test API Service
mata.service: Main process exited, code=exited, status=216/GROUP
mata.service: Unit entered failed state.
mata.service: Failed with result 'exit-code'.

どんなアイデアがありますか?

ベストアンサー1

「Type = simple」サービスがなく、「mata.sh」プロセスではなく「gunicorn」プロセスに興味があるため、分岐サービスがあります。

Type=simple サービスの場合、[Service]このセクションを次に変更します。

[Service]
User=ubuntu
Type=simple
WorkingDirectory=/home/ubuntu/workspace/test-api
ExecStart=/home/ubuntu/workspace/mata_venv/bin/gunicorn --workers=4 app:app --bind 0.0.0.0:xxxx
StandardInput=tty-force

...cdインポートコマンドを使用しました。タスクリスト指示する。

またはフォークされたサービスにする:

[Service]
User=ubuntu
Type=forking
ExecStart=/home/ubuntu/mata.sh
StandardInput=tty-force

gunicornプロセスが子プロセス(workers = 4)を開始しているように見える場合は、Type = forkingソリューションを好むことができます。

おすすめ記事