无法启动gunicorn.service:未找到Unit gunicorn.service

时间:2016-11-21 02:01:27

标签: django amazon-web-services ubuntu amazon-ec2 gunicorn

我正在尝试使用Amazon EC2DjangoGunicorn将基本应用程序部署到Nginx。我已将应用git clone添加到我的AWS Ubuntu个实例中,并且正在运行Django 1.10

我可以使用Gunicorn使用以下命令运行我的应用...

gunicorn --bind 0.0.0.0:8000 blackspruceherbals.wsgi:application

虽然我尝试为Gunicorn创建一个upstart文件时遇到了麻烦。文件路径如下......

/etc/init/gunicorn.conf

,新贵代码如下所示......

description "Gunicorn application server handling black spruce herbals"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
setuid ubuntu
setgid www-data
chdir /home/ubuntu/websitename/
exec bsh_env/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/websitename/websitename.sock websitename.wsgi:application

当我跑...

sudo service gunicorn start

我收到以下错误...

Failed to start gunicorn.service: Unit gunicorn.service not found.

是什么给出的?我已经在互联网上寻找答案,但一无所获。你能看到一些明显我做错的事吗?提前致谢。

2 个答案:

答案 0 :(得分:10)

由于Ubuntu 15.04 upstart已被systemd取代。您需要创建一个文件/etc/systemd/gunicorn.service,其语法与upstart文件不同。 FAQ可以帮助您入门,参考资料为man systemd.service

答案 1 :(得分:1)

添加到Antonis Christofides答案:

1)打开并创建systemd服务文件:

$ sudo nano /etc/systemd/system/gunicorn.service

2)将以下内容写入文件:

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

[Service]
User=name_of_user    
Group=name_of_user   
WorkingDirectory=/home/name_of_user/myproject
ExecStart=/home/name_of_user/myproject/virtualenv_directory/bin/gunicorn -- 
access-logfile - --workers 3 --bind unix:/home/name_of_user/myproject/myproject.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

3)启动服务:

$ sudo systemctl start gunicorn

4)启用服务:

$ sudo systemctl enable gunicorn

5)检查进程状态:

$ sudo systemctl status gunicorn

更多信息,请访问here

谢谢。 :)