我一直在使用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"哪一个更好??
赞赏表示样本的源代码。
感谢
答案 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)