【问题标题】:Running Celery as root以 root 身份运行 Celery
【发布时间】:2013-12-19 06:09:08
【问题描述】:

出于访问原因,我需要以 root 身份运行我的 Django 和 Celery。它说我需要设置 C_FORCE_ROOT 环境变量。如何/在哪里设置环境变量?

【问题讨论】:

  • 据我所知,只有在使用默认序列化格式pickle时才需要这样做。

标签: linux django celery


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2022-09-29
      • 2020-07-14
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多