Реализовал демон Celery 3.1.25 для проекта на Django 1.6.5 через systemd, но столкнулся с проблемой, из-за которой этот вариант не подойдет (даже конечный заказчик каким-то чудом не имеет доступа к руту на сервере). В связи с этим решил найти какие-то другие варианты и услышал о supervisor, но столкнулся с проблемой настройки.
С демоном на systemd в локалке все работает нормально, то есть celery в проекте уже настроен, таски работают. Проблема именно с тем, что реализовать такой же результат через supervisor.
Пока сделал только следующее:
- Установил через pip install supervisor
-Создал в корневой папке проекта документ supervisord.conf
- Скопировал в него дефолтные настройки командой echo_supervisord_conf > supervisord.conf
- Добавил туда следующий блок:
[program:celeryd]
command=/home/anton/virtualenvs/env_apart27/bin/celery worker —app=project -B -l info
stdout_logfile=/home/anton/project/celeryd.log
stderr_logfile=/home/anton/project/celeryd.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
У меня даже папки такой не создалось, когда я ставил в виртуальном окружении (к слову, для установки супервизора вне окружения через pip понадобилось добавлять sudo, то есть все равно нужен рут). Если же папку надо создавать самому, то, опять же, нужно использовать рут.
Есть ли способы реализовать демон celery без рута?
Хасан Истамкулов: "In the /etc/supervisord.conf file, probably near the top, you’ll see a section called [unix_http_server]. Adjust the following settings"
Файл обязательно должен быть в папке etc? Для создания любых файлов и папок в /etc/ нужен рут.
Можно что-нибудь сделать, создав supervisord.conf в корневой папке проекта Django?