1. 我不知道你在做什么,在这里,但这些都是运行celery作为一个守护进程的步骤。 您刚才提到在链接文件 “ 需要复制你的/ etc / init.d中文件夹的 “celeryd” 然后,你需要在文件夹中创建一个配置文件 在/ etc /默认的'celeryd“,通过上述 脚本。该配置文件主要定义了某些变量 和路径,通过上面的脚本。 此链接解释的过程 “ 并可以供参考
2. 我发现这个链接有用:如何在一个的virtualenv写celery(Django的celery)的Ubuntu的作业新贵 它扭捏了一下。我有一个工人celery这个脚本: (使用Ubuntu的暴发户) iamcelery.conf 并将其放置在/ etc / init的(注意:不是init.d中)# iamcelery -runs the celery worker as my virutal env user
#
#
# This task is run on startup to start the celery worker as my vritual env user
description "runs the celery worker"
author "michel van Leeuwen
start on runlevel [2345]
stop on runlevel [!2345]
# retry if ended unexpectedly
respawn
# limit the retries to max 15 times with timeouts of 5 seconds
respawn limit 15 5
# Time to wait between sending TERM and KILL signals
kill timeout 20
task
script
exec su -s /bin/sh -c 'exec "$0" "$@"'
end script
现在你可以开始这个素文字(它开始于服务器的启动以及):sudo start iamcelery
或停止:sudo stop iamcelery
或检查它的sudo status iamcelery
我不放弃肯定这是最巧妙的方法....但是...长期的试验和错误试图获得的initd脚本工作后.... (不...这最后的作品。 编辑2013年6月8日 到底我的脚本在这里给运行为根。 现在,我改变了这个:script
su
cd /srv/
exec bin/django celeryd -BE -l info
end script
中:script
exec su -s /bin/sh -c 'exec "$0" "$@"'
end script
而这个工程 CodeGo.net,所有的学分到这个问题的答案: 如何在一个的virtualenv写一个Ubuntu的暴发户工作的celery(Django的celery) 编辑2013年9月5日 有一件小事左:我以后在控制台执行CTRL-C(和之后做这个检查):如果知道这一点:留在,我可以更新这个答案...
3. 我上司(Django的监事)用于这一目的。这样,你不需要弄清楚如何守护进程每个进程在你的应用程序(其中至少有一个网络服务器托管的Django,celery,切实任何其他中间件,以支持那些)。上司知道如何把自己作为后台进程运行,并且所有的其他进程为公司监事的子跑。