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

suh*_*lvs 3 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"
Run Code Online (Sandbox Code Playgroud)

我知道这些是错误的,这就是为什么它会引发错误。

文档只是说:

CELERYD_USER
User to run celeryd as. Default is current user.
Run Code Online (Sandbox Code Playgroud)

仅此而已。任何帮助将不胜感激。

Ser*_*eim 5

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

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

因此,在您的情况下,最初发生的事情是celery尝试使用系统中不存在的名为“ celery”的用户来启动工作程序。当您注释掉这两个选项时,celery用发出该命令的用户启动了工作程序,sudo /etc/init.d/celeryd start在这种情况下,该用户是root(管理员)用户(默认为当前用户)。

但是,出于明显的原因,建议将工作进程作为非特权用户而不是root用户运行。因此,我建议使用http://www.cyberciti.biz/faq/unix-create-user-account/上的小教程实际添加celery用户和组,然后再次取消注释

CELERYD_USER =“ celery”
CELERYD_GROUP =“芹菜”

选项。