我正在尝试在aws实例上守护celery配置。
在celery docs之后,我有:
/etc/init.d/celeryd
/etc/default/celerybeat
我已经创建了芹菜用户和芹菜组,并设置了如下权限:
sudo chown -R celery:celery /var/log/celery/
sudo chown -R celery:celery /var/run/celery/
sudo chown celery:celery /home/sfree/meampy/bin/celery
当我检查文件的权限时,它看起来不错:
(meampy)[]$ ls -l /home/sfree/meampy/bin/celery
-rwxrwxrwx 1 celery celery 237 Sep 13 15:15 /home/sfree/meampy/bin/celery
但是当我运行脚本时:
sudo sh -x /etc/init.d/celeryd start
...
Starting celeryd...
+ _chuid -f /var/log/celery/beat.log -l INFO --detach --pidfile=/var/run/celery/beat.pid
+ su celery -c '/home/sfree/meampy/bin/celery beat -f /var/log/celery/beat.log -l INFO --detach --pidfile=/var/run/celery/beat.pid'
bash: /home/sfree/meampy/bin/celery: Permission denied
+ exit 0
如果我单独运行违规行,我会得到同样的错误。
meampy
是我的virtualenv的名字。 virtualenv是我遇到权限问题的原因吗?
编辑:virtualenv的权限:
lrwxrwxrwx 1 sfree www-data 24 Sep 1 19:49 meampy -> /usr/local/python/meampy
我将芹菜用户添加到www-data
组,仍然是同样的错误
答案 0 :(得分:0)
由于virtualenv Meampy属于sfree,因此您应该修改celery配置文件(/ etc / default / celeryd)
设置
CELERYD_USER="sfree"
CELERYD_GROUP="sfree"
别忘了
sudo chown -R sfree:sfree /var/log/celery/
sudo chown -R sfree:sfree /var/run/celery/