首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用主控引擎和虚拟环境监控celerybeat

使用主控引擎和虚拟环境监控celerybeat
EN

Stack Overflow用户
提问于 2013-09-03 04:34:40
回答 4查看 8.3K关注 0票数 14

我的celerybeat.conf

代码语言:javascript
复制
[program:celerybeat]
command=/path/app/env/bin/celery beat -A project.tasks --loglevel=INFO
environment=PYTHONPATH=/path/app/env/bin

user=nobody
numprocs=1
stdout_logfile=/var/log/celeryd.log
stderr_logfile=/var/log/celeryd.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
killasgroup=true
priority=998

当我启动supervisor时,我收到一个错误:

代码语言:javascript
复制
pidfile_fd = os.open(self.path, PIDFILE_FLAGS, PIDFILE_MODE)
celery.platforms.LockFailed: [Errno 13] Permission denied: '/celerybeat.pid'

你知道怎么解决这个问题吗?

EN

回答 4

Stack Overflow用户

发布于 2013-11-26 08:05:53

问题是您没有在配置文件中指定任何目录,而默认目录是'/‘(root),您的用户没有权限写入该目录。

将用户设置为root解决了您的问题,因为现在您有权限写入“/”,但这可能不是最佳解决方案。有多种方法可以解决此问题,包括:

  1. 在配置中添加目录变量,并提供您的用户有权写入的路径。

directory=

  • Provide一个pidfile参数到您用来启动celery的celery命令。确保您对为pidfile指定的路径具有写入权限。

--pidfile=/tmp/celerybeat-myapp.pid =/path/app/env/bin/celery -A project.tasks --loglevel=INFO命令

票数 16
EN

Stack Overflow用户

发布于 2013-09-03 15:45:38

以下是我在Celere beat上的(工作)版本:

代码语言:javascript
复制
[program:celery_periodic]
command=<venv_path>/bin/python <path>/manage.py celery worker --loglevel=info -c 1 -E -B -Q celery_periodic -f <log_folder>/celery_periodic.log -n periodic_worker
directory=<path>
user=<some_user>
group=<some_user>
autostart=true
autorestart=true
redirect_stderr=True
daemon = False
debug = False
stdout_logfile = NONE
stderr_logfile = NONE
loglevel = "info"

这可能会有所帮助。

还要检查您创建pid文件的文件夹的权限。

票数 1
EN

Stack Overflow用户

发布于 2013-09-03 04:55:16

我通过设置user=root来解决我的问题,但我认为这是不好的方法……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18580423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档