以 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 身份运行 Celery

以root身份在脚本中间运行命令[重复]

如何以 root 身份运行 Google Chrome? [关闭]

Qt应用程序以root身份运行时更改字体

无法以 root linux 用户身份运行 mysql 命令

以内核模式运行和以root身份运行的进程之间的区别?