uWSGIをサービスとして動かせない時の対処法

この記事は旧ブログから移転した記事です。

現状

uWSGIをサービスとして動かしたかったので、サービスユニットファイルを作成し、いざ起動!・・・できなかった。

以下エラー内容。

~略~
Active: failed (Result: protocol)
~略~
systemd[1]: Stopped uWSGI
systemd[1]: <サービス名>.service: Start request repeated too quickly.
systemd[1]: <サービス名>.service: Failed with result 'protocol'.
systemd[1]: Failed to start uWSGI.
~略~

原因

デーモン化されているものをサービスとして起動しようとしていたことが問題。

解決策

uWSGIの構成ファイル(uwsgi.ini等の名前で作成しているはず)のdaemonize設定を削除する。私の環境では以下のように記述していたので、これを削除。

daemonize = %(base)/manage.log  //デーモン化についての記述

再度サービスを起動(サービスユニットファイルは作成済みという前提です)

//uWSGIをサービスとして起動
> sudo systemctl start <サービス名>

//サービスのステータス
> sudo systemctl status <サービス名>
~略~
Active: active (running)
~略~

//サービスの自動起動設定(蛇足)
sudo systemctl enable <サービス名>

参考にしたサイト

Not launched uwsgi by systemctl
I can not start uwsgi by systemctl.my error log is here below.$sudo systemctl status uwsgi.service● uwsgi.service - uWSG...