【发布时间】:2017-10-10 15:33:48
【问题描述】:
我正在尝试在 aws 实例上守护 celery 配置。
按照celery docs,我有:
/etc/init.d/celeryd
/etc/default/celerybeat
我已经创建了一个 celery 用户和一个 celery 组,并像这样设置权限:
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
我将 celery 用户添加到www-data 组,还是同样的错误
【问题讨论】:
-
celery 用户是否有权访问
/var/run/celery? -
是的,我运行了 sudo chown -R celery:celery /var/run/celery/。无论如何,我通过使用 supervisord 解决了这个问题。
-
那么
supervisord运行 celery 进程是否与您尝试使用的同一用户相同?如果遇到同样的问题,任何信息都可能对其他人有所帮助。 -
老实说我不记得了,那是很久以前的 v,我不再可以访问 repo。不过,我认为我要么是匿名运行它,要么是作为我创建的其他用户运行它。
标签: celery file-permissions daemon celeryd