超级用户如何经营芹菜工人?

时间:2016-05-22 16:19:29

标签: python linux celery

当我用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运行芹菜?我知道这不安全但出于某些原因我真的需要这样做!

1 个答案:

答案 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运行,它会工作!