当 celery 使用 root 用户执行时,会报出如下警告:1
RuntimeWarning: You're running the worker with superuser privileges: this is absolutely not recommended!
低版本的 celery 情况不清楚,但是 celery 4.1.0 版本中,这个警告是无法去除的。因为源码中是这样写的:
1 | def check_privileges(accept_content): |
很明显,这个 RuntimeWarning 是无法通过 C_FORCE_ROOT 设置来屏蔽的。当然了,这个只是一个警告,celery的运行并不受影响。
如果遇到某些版本的 celery 因为 root 用户而无法启动、无法执行的情况,可以通过改变 C_FORCE_ROOT=True 来规避这个问题。
主要有四种方式:
1.手动设置环境变量1
export C_FORCE_ROOT="true"
2.使用 supervisor 管理 celery 时,可以用 environment 来设置环境变量.1
environment=PYTHONPATH="xxx",C_FORCE_ROOT="true"
3.代码中硬编码指定.1
2
3from celery import platforms
platforms.C_FORCE_ROOT=True
4.写入 bashrc 或者其他系统启动脚本之中1
2file:.bashrc
export C_FORCE_ROOT="true"