Django + Nginx 和 Gunicorn:不会创建 gunicorn.sock

Django + Nginx 和 Gunicorn:不会创建 gunicorn.sock

我做的时候出错了systemctl start gunicorn.socket

systemctl status gunicorn.socket
● gunicorn.socket - gunicorn socket
     Loaded: error (Reason: Unit gunicorn.socket failed to load properly: Bad message.)
     Active: inactive (dead)

Sep 17 14:20:52 tcs-generator systemd[1]: /etc/systemd/system/gunicorn.socket:3: Invalid section header '[Socket]ListenStream=/run/gunicorn.sock'

我的 SystemD 单元文件(gunicorn.service):

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/var/www/Network_web
ExecStart=/var/www/Network_web/djangoenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock          Network_web.wsgi:application
[Install]
WantedBy=multi-user.target

我的套接字文件(gunicorn.socket):

[Unit]
Description=gunicorn socket
[Socket]ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target

这是我们看到的一些输出:

root@tcs-generator:/# ls -la /run/ | grep gu
root@tcs-generator:/#

Sep 17 17:18:28 tcs-generator systemd[1]: Started gunicorn daemon.
Sep 17 17:18:31 tcs-generator gunicorn[858]: usage: gunicorn [OPTIONS] [APP_MODULE]
Sep 17 17:18:31 tcs-generator gunicorn[858]: gunicorn: error: argument -b/--bind: expected one argument
Sep 17 17:18:31 tcs-generator systemd[1]: gunicorn.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 17 17:18:31 tcs-generator systemd[1]: gunicorn.service: Failed with result 'exit-code'.
Sep 17 14:20:52 tcs-generator systemd[1]: /etc/systemd/system/gunicorn.service:10: Missing '=', ignoring line.

答案1

你并没有错,你只是忘了在套接字文件的配置中分离你的节标题和你的文件。

像这样:

[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target

请注意,这只是您的一个简单的打字错误 - 部分标题应该放在它们自己的行上,而该标题下方的配置则放在单独的行上。

如果这仍然不起作用,请查阅 SystemD 手册,了解该功能何时实施,以确保您的 SystemD 支持这些配置选项。

相关内容