3

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

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

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

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

文档只是这样说:

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

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

4

1 回答 1

5

为了清晰可见,我添加了一个正确的答案:

Workers 是运行各种 celery 任务的 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="芹菜"
CELERYD_GROUP="芹菜"

选项。

于 2013-08-21T09:45:19.003 回答