Ubuntu服务Upstart或SystemD,Django开发服务器作为服务

时间:2017-10-24 07:12:25

标签: django ubuntu celery systemd upstart

我一直在使用Python& Django框架与Ubuntu 16.01一段时间。因为我使用了Django和Q系统(Celery)以及其他一些增强应用程序。当我每次尝试运行所有应用程序时,我需要运行开发服务器" {python manage.py runserver}",然后运行Celery Worker" {celery -A filename worker -l info }&#34 ;.每次我工作,都需要几分钟才能进入目录并启动它。我四处冲浪,想出将其设置为服务的想法。例如,服务名称:" pyd"。 我只需要运行" {sudo pyd start}" - >然后Django Development Server和Celery将启动,如果我运行" {sudo pyd stop}" - >然后是Django&芹菜会停下来。

我试着四处寻找,事情开始让我感到困惑,并且#34; Upstart"和" Systemd"。

有人建议,如何让Django和Celery作为服务在Ubuntu中运行?介于" Upstart" &安培; " Systemd"哪一个更好??

赞赏表示样本的源代码。

感谢

2 个答案:

答案 0 :(得分:0)

您可以使用Upstart执行此操作。

安装后,转到目录/etc/init/。 创建文件xyz.conf并添加以下行:

cd /path/to/your/manage.py/file
exec python manage.py runserver & celery -A filename worker -l info

如果您使用的是virtualenv,请在上面添加以下行:

pre-start script
    #activate virtual environment
    source env-name/bin/activate
end script

现在,您可以通过发出命令sudo start xyz启动Django Dev Server和Celery作为服务,通过发出sudo stop xyz来停止它,并通过发出sudo status xyz来检查您的服务状态。

xyz.conf将登录/var/log/upstart/xyz.log。您可以使用以下命令查看日志:sudo tail -f /var/log/upstart/xyz.log

答案 1 :(得分:0)

您可以将celery设置为守护程序服务,请按照以下步骤进行操作

第1步:芹菜初始化脚本

将此script文件复制到目录/etc/init.d/celeryd中(celeryd将是服务名称,您可以将其命名为任何内容)

上述来源中给出了设置此项的说明。

第2步:设置芹菜配置

现在在此文件/ etc / default / celeryd中配置celery配置,此example将为您提供通用配置文件。

现在您可以使用以下命令将芹菜作为服务运行

sudo service celeryd start

sudo service celeryd stop

或任何其他服务命令。