我跟着本指南使用 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
笔记
- 用户应该是拥有环境和项目的用户,并且属于他的组。
- 文件应位于 /etc/init/gunicorn.conf。
- upstart gunicorn 的日志文件位于 /var/log/upstart/gunicorn.conf 中
你