調試啟動時啟動 Web 伺服器時應該使用哪個日誌

調試啟動時啟動 Web 伺服器時應該使用哪個日誌

烏班圖18.04

我正在嘗試讓 Gunicorn Web 伺服器在啟動時啟動。

/etc/systemd/system/gunicorn.service

[Unit]
Description=gunicorn daemon

[Service]
# the specific user that our service will run as
User=pcask
Group=pcask

WorkingDirectory=/home/michael/PycharmProjects/pcask/pcask
ExecStart=gunicorn pcask.wsgi
ExecReload=/bin/kill -s HUP $MAINPID
KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true

[Install]
WantedBy=multi-user.target

權限

pcask@tmpgmv:~/pcask/venv/lib/python3.8/site-packages$ ls -la |grep gunicorn
drwxrwxr-x   7 pcask pcask   4096 Jul 28 19:32 gunicorn
drwxrwxr-x   2 pcask pcask   4096 Jul 28 19:32 gunicorn-20.0.4.dist-info

重新啟動時,伺服器未運作。即當我打開我的 websie 時,它顯示 502 Bad gateway。這意味著 Gunicorn 沒有運行。

你能告訴我是否有一個錯誤日誌,我可以在其中看到在啟動時使用此服務文件時出了什麼問題。以及它是否被使用過。

稍後添加

$ sudo journalctl -u gunicorn.service
[sudo] password for pcask: 
Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2020-08-14 12:36:57 MSK; 1min 11s ago
  Process: 439 ExecStart=/home/pcask/pcask/venv/lib/python3.8/site-packages/gunicorn pcask.wsgi:application (code=exited, status=203/EXEC)
 Main PID: 439 (code=exited, status=203/EXEC)

Aug 14 12:36:57 tmpgmv systemd[1]: Started gunicorn daemon.
Aug 14 12:36:57 tmpgmv systemd[439]: gunicorn.service: Failed to execute command: Permission denied
Aug 14 12:36:57 tmpgmv systemd[439]: gunicorn.service: Failed at step EXEC spawning /home/pcask/pcask/venv/lib/python3.8/site-packages/gunicorn: Permission denied
Aug 14 12:36:57 tmpgmv systemd[1]: gunicorn.service: Main process exited, code=exited, status=203/EXEC
Aug 14 12:36:57 tmpgmv systemd[1]: gunicorn.service: Failed with result 'exit-code'.

答案1

systemd 使用自己的日誌記錄。查看它的命令是

journalctl 

您可以使用

journalctl -u gunicorn.service

追蹤特定服務。

其他一些例子:

journalctl --since="2020-01-01 10:00:00"
journalctl --since "30 min ago"
journalctl _PID=1000
  • 確保該服務處於活動狀態。檢查sudo systemctl status gunicorn.service,如果不活動,您可以使用sudo systemctl enable gunicorn它來啟動它。

  • 確保該服務在所有其他必需服務啟動後啟動。在 nginx 或網路啟動之前啟動 Gunicon 是行不通的。值得注意的是:您的設備After=network.target在該部分中缺少[UNIT]

假設你的gunicorn在手動啟動時工作,你不需要nginx日誌,但以防萬一:

/var/log/nginx/access.log
/var/log/nginx/error.log

相關內容