我正在尝试安装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.
没有更多关于它。 任何帮助将不胜感激。
答案 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"
选项。