当我用sudo运行芹菜工人时,我收到以下错误:
Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!
If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).
User information: uid=0 euid=0 gid=0 egid=0
我的 C_FORCE_ROOT 环境变量 true :
echo $C_FORCE_ROOT
true
更多信息:
Python - > 2.7.6
芹菜 - > 3.1.23(密码)
OS - > Linux(Ubuntu 14.04)
我应该如何用sudo运行芹菜?我知道这不安全但出于某些原因我真的需要这样做!
答案 0 :(得分:4)
好的,我找到了解决方案!
在芹菜3.1及以上版本中,具有泡菜序列化的工人将会崩溃,如documentation中所述:
如果以启用了pickle的root用户身份运行,工作人员现在将崩溃。
所以要使用sudo,你需要在celery config中禁用pickle序列化。我是用json做的:
app.conf.update(
CELERY_ACCEPT_CONTENT = ['json'],
CELERY_TASK_SERIALIZER = 'json',
CELERY_RESULT_SERIALIZER = 'json',
)
然后如果你使用sudo运行,它会工作!