如何在ubuntu中运行celeryd作为守护进程?

时间:2013-08-21 06:41:58

标签: python django initialization celery django-celery

我正在尝试安装init.d脚本,以运行celery来安排任务。当我尝试sudo /etc/init.d/celeryd start启动它时,会抛出错误"User does not exist: 'celery'"

我的芹菜配置文件(/etc/default/celeryd)包含以下内容:

# Workers should run as an unprivileged user.
CELERYD_USER="celery"
CELERYD_GROUP="celery"

我知道这些错误就是它抛出错误的原因。

documentation只是这样说:

CELERYD_USER
User to run celeryd as. Default is current user.

没有更多关于它。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

我正在添加一个正确的答案,以便清晰可见:

工作人员是运行各种芹菜任务的unix进程。正如您在文档中看到的那样,CELERYD_USER和CELERYD_GROUP确定这些工作程序将在Unix环境中运行的用户和组的名称。

所以,最初在你的案例中发生的事情是,芹菜试图用一个名为“celery”的用户启动工作者,这个用户在你的系统中不存在。当你注释掉这两个选项时,celery就会向发出命令sudo /etc/init.d/celeryd start的用户启动worker,在这种情况下,命令是{root(管理员)用户(默认是当前用户)。

但是,出于显而易见的原因,建议将工作者作为未经授权的用户运行,而不是以root用户身份运行。所以我建议使用http://www.cyberciti.biz/faq/unix-create-user-account/中的小教程实际添加芹菜用户和组,并再次取消注释

CELERYD_USER="celery"
CELERYD_GROUP="celery"

选项。