我一直致力于将芹菜任务设置为守护进程,以便按计划处理数据。在
我一直在跟踪the docs以便设置我的守护程序,但是遇到了一个日志文件权限错误,这让我很为难。在
下面是我在数字海洋上的ubuntu设备上设置的配置
/etc/default/celeryd
# here we have a single node
CELERYD_NODES="w1"
CELERY_BIN = "/mix_daemon/venv/bin/celery"
CELERYD_CHDIR="/mix_daemon/"
CELERYD_OPTS="-A tasks worker --loglevel=info --beat"
# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERY_CREATE_RUNDIR=0
CELERY_CREATE_LOGDIR=0
# Workers should run as an unprivileged user.
CELERYD_USER="celery"
CELERYD_GROUP="celery"
但是,当我跑的时候
^{pr2}$我收到以下错误消息:
celery multi v3.1.7 (Cipater)
> Starting nodes...
> celery@mix: OK
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/john/mix_daemon/venv/lib/python2.7/site-packages/celery/bin/celeryd_detach.py", line 168, in <module> main()
File "/home/john/mix_daemon/venv/lib/python2.7/site-packages/celery/bin/celeryd_detach.py", line 165, in main
detached_celeryd(app).execute_from_commandline()
File "/home/john/mix_daemon/venv/lib/python2.7/site-packages/celery/bin/celeryd_detach.py", line 160, in execute_from_commandline
**vars(options)
File "/home/john/mix_daemon/venv/lib/python2.7/site-packages/celery/bin/celeryd_detach.py", line 42, in detach
with detached(logfile, pidfile, uid, gid, umask, working_directory, fake):
File "/home/john/mix_daemon/venv/local/lib/python2.7/site-packages/celery/platforms.py", line 314, in open
self.after_chdir()
File "/home/john/mix_daemon/venv/local/lib/python2.7/site-packages/celery/platforms.py", line 384, in after_chdir_do
logfile and open(logfile, 'a').close()
IOError: [Errno 13] Permission denied: '/var/log/celery/celery.log'
+ sleep 5
+ exit 0
我查看了这个错误消息,看到了来自redmine项目的this answer。因此,我尝试了以下方法来允许芹菜工人写入日志文件:
$ sudo mkdir -p -m 2755 /var/log/celery
$ sudo chown celery:celery /var/log/celery
但是当我尝试启动守护进程时,仍然存在相同的错误。在
我是一个芹菜杂碎,如果有任何帮助,我将不胜感激!在
根据文件:
所以,你需要跑:
以及
^{pr2}$顺便说一下,您的celeryd配置文件中有无效语法:
不允许使用“=”运算符空格,正确的是:
还要检查一下,您的bin是否在/mix_daemon not/home//mix\u daemon中
它帮助我:
相关问题 更多 >
编程相关推荐