以 root 身份运行 Celery
Posted
技术标签:
【中文标题】以 root 身份运行 Celery【英文标题】:Running Celery as root 【发布时间】:2013-12-19 06:09:08 【问题描述】:出于访问原因,我需要以 root 身份运行我的 Django 和 Celery。它说我需要设置 C_FORCE_ROOT 环境变量。如何/在哪里设置环境变量?
【问题讨论】:
据我所知,只有在使用默认序列化格式pickle
时才需要这样做。
【参考方案1】:
您可以像这样将其设置为 true:
# export C_FORCE_ROOT="true"
然后确保将其设置为环境。变量
# echo $C_FORCE_ROOT
true
但请确保将其设为永久,因为这将在下次重启时消失
玩得开心:) !!
【讨论】:
即使将变量设置为“true”并打印验证,运行后的输出如下: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
【参考方案2】:
第一种解决方案 - 在终端手动输入命令
$ export C_FORCE_ROOT='true'
第二个解决方案 - 编辑 shell 配置
$ vi ~/.bashrc
# add following line
export C_FORCE_ROOT='true'
$ source ~/.bashrc
第三种解决方案 - 编辑 Django 的 manage.py
import os
if __name__ == '__main__':
os.environ.setdefault('C_FORCE_ROOT', 'true')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PATH TO SETTINGS FILE')
execute_from_command_line(sys.argv)
【讨论】:
【参考方案3】:任何地方,以便 python 进程使用 os.environ
获取它。
如果您的问题是关于环境变量的工作原理,请阅读this tutorial。
【讨论】:
以上是关于以 root 身份运行 Celery的主要内容,如果未能解决你的问题,请参考以下文章
如何以 root 身份运行 Google Chrome? [关闭]