笔记

笔记

我跟着本指南使用 Gunicorn 设置 Django,但遇到了一个问题,Ubuntu 15.10 使用 systemd 而不是 upstart。因此在询问问题在这里为了弄清楚这一点,我发现另一位导游用于 CentOS 来帮助我配置 systemd。

考虑到这一点,我想出了以下 gunicorn.service 文件:

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

[Service]
User=root
Group=root
WorkingDirectory=/home/webapps/games
ExecStart=/home/webapps/games/venv/bin/gunicorn --workers 3 --bind unix:/home/webapps/games/games.sock games.wsgi:application

[Install]
WantedBy=multi-user.target

我将组/用户设置为 root,只是为了确保权限暂时不会造成问题。目录结构如下:/home/webapps/games

├── games
│   └── wsgi.py
├── venv
│   └── bin
│       └── gunicorn
└── manage.py 

当我尝试运行时,service gunicorn start出现了一个神秘的错误gunicorn: unrecognized service。我不知道接下来该做什么,也找不到任何日志。有什么想法吗?

从命令行运行它时,gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application它会按预期工作并提供文件。

答案1

如果您使用的是 ubuntu,那么我认为 CentOS 说明将不起作用。取自 DigitalOcean 教程,您应该为 upstart 创建 .conf 文件:

description "Gunicorn application server handling myproject"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
setude user
setgid www-data
chdir /home/webapps

exec /home/webapps/games/venv/bin/gunicorn --workers 3 --bind unix:/home/webapps/games/games.sock games.wsgi:application

笔记

  1. 用户应该是拥有环境和项目的用户,并且属于他的组。
  2. 文件应位于 /etc/init/gunicorn.conf。
  3. upstart gunicorn 的日志文件位于 /var/log/upstart/gunicorn.conf 中

相关内容