Ubuntu 18.04
我正在尝试让 Gunicorn 网络服务器在启动时启动。
/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
重启后服务器没有运行。也就是说,当我打开我的网站时,它显示 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
它来使其处于活动状态。After=network.target
确保该服务在所有其他所需服务启动后启动。在 nginx 或网络启动之前启动 gunicon 是行不通的。值得注意的是:您的单元在部分中缺少[UNIT]
。
假设你的 gunicorn 在手动启动时工作,你不需要 nginx 日志,但以防万一,这些是:
/var/log/nginx/access.log
/var/log/nginx/error.log