Отказано в разрешении dotcloud celery

Я пытаюсь использовать сельдерей в своем приложении django, чтобы запустить фоновый процесс, который импортирует файл CSV в одну из баз данных моих моделей. Это отлично работает на моей локальной машине, на которой работает сельдерей, используя:

python manage.py celery worker --loglevel=info

и RabbitMQ

rabbitmq-server

Это ошибка, которую я получаю, когда нажимаю на dotcloud

workers.0    celery.platforms.LockFailed: [Errno 13] Permission denied: '/celeryev.pid'

РЕДАКТИРОВАТЬ:

supervisord.conf

[program:djcelery]
command = /home/dotcloud/env/bin/python /home/dotcloud/current/cellhelmet/manage.py celeryd -E -l info -c 2
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log

[program:celerycam]
command = /home/dotcloud/env/bin/python /home/dotcloud/current/cellhelmet/manage.py     celerycam
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log

person ChrisC    schedule 22.01.2013    source источник
comment
Какую среду вы используете? Проверьте эту ссылку: http://wiki.apache.org/httpd/13PermissionDenied   -  person karthikr    schedule 22.01.2013


Ответы (2)


Похоже, вы пытаетесь записать файл pid в /, что имеет смысл, почему вы получите отказ в разрешении.

Что у вас есть для значения для CELERYD_PID_FILE ?

Попробуйте установить один из этих параметров

CELERYD_PID_FILE="/var/log/supervisor/%n.pid" CELERYD_PID_FILE="/home/dotcloud/"

Дополнительную информацию о параметрах конфигурации можно найти здесь: http://ask.github.com/celery/cookbook/daemonizing.html

Если это не сработает, сообщите нам, как вы запускаете команду, и отправьте любую конфигурацию (supervisord.conf и т. д.) и сценарии, которые вы используете для запуска celery.

person Ken Cochrane    schedule 22.01.2013
comment
Привет, Кен, спасибо за помощь. Я следовал документам, расположенным здесь docs.dotcloud.com/0.9/tutorials/python. /django-celery, и не указано, где разместить настройки. Я попытался поместить параметр, который вы упомянули выше, в свой файл settings.py, но это не дало никакого эффекта. Где я должен разместить эти настройки? - person ChrisC; 23.01.2013
comment
Я безуспешно пробовал dotcloud env set CELERYD_PID_FILE=celery.pid и даже изменил свой supervisord.conf на command = python manage.py celeryd -E -l info -c 2 --pidfile celeryd.pid, но по-прежнему получает ту же ошибку. - person ChrisC; 23.01.2013
comment
@ChrisC жаль слышать, что это не помогло. Отправьте электронное письмо на адрес [email protected] с названием вашего приложения, и мы поможем вам разобраться в проблеме. См. также этот вопрос о переполнении стека. - person Ken Cochrane; 25.01.2013

Проблема заключалась в том, что я удалил эту строку из файла supervisord.conf:

directory = /home/dotcloud/current/cellhelmet

Это заставило его искать в корневом каталоге, который, как я предполагаю, дал мне ошибку отказа в разрешении. Хотя это, конечно, прояснило для меня.

person ChrisC    schedule 25.01.2013