【问题标题】:celery user permission denied to /bin/celerycelery 用户权限被拒绝 /bin/celery
【发布时间】: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


【解决方案1】:

因为 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多