Gr1*_*r1N 13 python celery supervisord celerybeat
我的celerybeat.conf
[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
当我启动主管时,我收到一个错误:
pidfile_fd = os.open(self.path, PIDFILE_FLAGS, PIDFILE_MODE)
celery.platforms.LockFailed: [Errno 13] Permission denied: '/celerybeat.pid'
不知道怎么解决这个问题?
san*_*ora 14
问题是你没有在配置文件中指定任何目录,默认目录是'/'(root),你的用户没有权限写.
将用户设置为root可以解决您的问题,因为现在您有权写入'/',但它可能不是最佳解决方案.您可以通过多种方式解决此问题:
在配置中添加目录变量,并提供用户有权写入的路径.
directory=<path>
为您用于启动celery的celery命令提供pidfile参数.确保您对为pidfile指定的路径具有写入权限.
command=/path/app/env/bin/celery beat -A project.tasks --loglevel=INFO --pidfile=/tmp/celerybeat-myapp.pid
我通过设置 user=root 解决了我的问题,但我认为这是不好的方法......