私は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であることを付け加えたいと思います。これはプロジェクト仕様によるものです。