Супервизор не может запустить сельдерей

Я пытаюсь запустить celery beat на своем сервере, но получаю следующую ошибку:

[2016-06-10 11:32:49,985: WARNING/MainProcess] self._index[key] = self._setval(pos, val)
[2016-06-10 11:32:49,985: WARNING/MainProcess] File "/usr/local/lib/python3.5/dbm/dumb.py", line 166, in _setval
[2016-06-10 11:32:49,985: WARNING/MainProcess] with _io.open(self._datfile, 'rb+') as f:
[2016-06-10 11:32:49,985: WARNING/MainProcess] PermissionError
[2016-06-10 11:32:49,986: WARNING/MainProcess] :
[2016-06-10 11:32:49,986: WARNING/MainProcess] [Errno 13] Permission denied: 'celerybeat-schedule.dat'
No local settings found
celery beat v3.1.23 (Cipater) is starting.
__    -    ... __   -        _
Configuration ->
    . broker -> redis://localhost:6379/0
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%INFO
    . maxinterval -> now (0s)

[2016-06-10 11:35:28,814: INFO/MainProcess] beat: Starting..

Я не знаю, почему для celerybeat-schedule.dat отказано в разрешении, поскольку я устанавливаю пользователя и разрешение в своем файле конфигурации:

[program:project_celery_beat]
command=/home/project/_env/bin/celery beat -A project --loglevel=INFO --pidfile=/tmp/celerybeat-myapp.pid
directory=/home/project/project/app/
user=project
numprocs=1
stdout_logfile=/home/project/celery_beat.log
stderr_logfile=/home/project/celery_beat.log
autostart=true
autorestart=true
stopsignal=QUIT
environment=DJANGO_SETTINGS_MODULE="project.settings.sandbox":

Как мне решить эту проблему с разрешением?


person silviomoreto    schedule 10.06.2016    source источник
comment
Это может быть глупо, но есть ли у пользователя project права на чтение celerybeat-schedule.dat файла?   -  person Wilerson    schedule 10.06.2016
comment
Не знаю ... Я пытался изменить файл на папку, доступ к которой есть у пользователя, но возникла та же проблема   -  person silviomoreto    schedule 10.06.2016


Ответы (1)


Я столкнулся с этой проблемой сегодня. Я решил это, поставив:

user = <An actual non-root user>

это странно, потому что для сельдерея вы можете ввести несуществующего пользователя, и он отлично работает.

person Grae    schedule 04.09.2019