Gunicorn は MyProject.sock ファイルを生成しません。

Gunicorn は MyProject.sock ファイルを生成しません。

私はUnixの専門家ではなく、Ubuntu Server(20.04.5 LTS)のAzureでWebAppを実行するのに問題があります。 gunicorn.service は MyProjet.sock ファイルを生成しません。特にWebAppは常に動作します。ある日から翌日まで MyProject.sock ファイルが削除され、再作成できません。

こことStackOverflowで見つけたいくつかの解決策、より正確には、このコマンドシーケンスを試してみました。

sudo systemctl stop nginx 
sudo systemctl stop gunicorn.service
sudo systemctl restart nginx
sudo systemctl daemon-reload
sudo systemctl restart gunicorn.service
sudo systemctl status gunicorn.service

私が得た結果は次のとおりです。

● gunicorn.service - gunicorn daemon
     Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2024-01-12 13:40:11 UTC; 1min 18s ago
    Process: 2305577 ExecStart=/home/admin/myproject/backend/venv/bin/gunicorn --workers 3 --timeout 1800 --bind unix:/home/admin/myproject/backend/myproject.sock project.wsgi:application (code=exited, status=3)
   Main PID: 2305577 (code=exited, status=3)

Jan 12 13:40:10 DeployUbuntu gunicorn[2305583]: Inner error: {
Jan 12 13:40:10 DeployUbuntu gunicorn[2305583]:     "code": "ForbiddenByFirewall"
Jan 12 13:40:10 DeployUbuntu gunicorn[2305583]: }
Jan 12 13:40:10 DeployUbuntu gunicorn[2305583]: [2024-01-12 13:40:10 +0000] [2305583] [INFO] Worker exiting (pid: 2305583)
Jan 12 13:40:11 DeployUbuntu gunicorn[2305577]: [2024-01-12 13:40:11 +0000] [2305577] [WARNING] Worker with pid 2305584 was terminated due to signal 15
Jan 12 13:40:11 DeployUbuntu gunicorn[2305577]: [2024-01-12 13:40:11 +0000] [2305577] [WARNING] Worker with pid 2305583 was terminated due to signal 15
Jan 12 13:40:11 DeployUbuntu gunicorn[2305577]: [2024-01-12 13:40:11 +0000] [2305577] [INFO] Shutting down: Master
Jan 12 13:40:11 DeployUbuntu gunicorn[2305577]: [2024-01-12 13:40:11 +0000] [2305577] [INFO] Reason: Worker failed to boot.
Jan 12 13:40:11 DeployUbuntu systemd[1]: gunicorn.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
Jan 12 13:40:11 DeployUbuntu systemd[1]: gunicorn.service: Failed with result 'exit-code'.

命令を連結して一度にすべての命令を実行しようとするとサービスがうまくいくようです。

sudo systemctl stop nginx && sudo systemctl stop gunicorn.service && sudo systemctl restart nginx && sudo systemctl daemon-reload && sudo systemctl restart gunicorn.service && sudo systemctl status gunicorn.service
● gunicorn.service - gunicorn daemon
     Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-01-12 13:40:10 UTC; 22ms ago
   Main PID: 2305577 (gunicorn)
      Tasks: 1 (limit: 9530)
     Memory: 2.8M
     CGroup: /system.slice/gunicorn.service
             └─2305577 /home/admin/myproject/backend/venv/bin/python /home/admin/myproject/backend/venv/bin/gunicorn --workers 3 --timeout 1800 --bind unix:/home/admin/myproject/backend/myproject.sock project.wsgi>
Jan 12 13:40:10 DeployUbuntu systemd[1]: Started gunicorn daemon.

しかし、すぐに実行すると

sudo systemctl status gunicorn.service

上記のエラーメッセージが表示されました。

私のグルニコンサービス

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=admin
Group=www-data
WorkingDirectory=/home/admin/myproject/backend
ExecStart=/home/admin/myproject/backend/venv/bin/gunicorn --workers 3 --timeout 1800 --bind unix:/home/admin/myproject/backend/myproject.sock project.wsgi:application

[Install]
WantedBy=multi-user.target

gunicornとプロジェクトを削除して再インストールしてみたことを付け加えたいです。最後に、使用されたgunicornバージョンが20.1.0であることを付け加えたいと思います。これはプロジェクト仕様によるものです。

関連情報