Как запустить скрипты celeryd и celerybeat без supervisord?
При перезапуске сервера надо вручную прописывать такие команды:
sudo /etc/init.d/celeryd start
sudo /etc/init.d/celerybeat start
В одной инструкции подглядел, что можно добавлять в /etc/rc.local в таком виде:
/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data
Я попробовал так же:
/etc/init.d/celeryd start
/etc/init.d/celerybeat start
Не работает.
Где нужно указать эти команды, чтобы сервер их выполнил при запуске?
Простой перезагрузки sudo reboot, как и ожидал, не хватило, но и команда sudo systemctl start celery.service не сработала - выдает ошибку:
Job for celery.service failed because the control process exited with error code. See "systemctl status celery.service" and "journalctl -xe" for details.
Пишу systemctl status celery.service и получаю следующее:
ubuntu@cloud-netzbarkeit-03:~$ systemctl status celery.service
● celery.service - Celery Service
Loaded: loaded (/etc/systemd/system/celery.service; disabled; vendor preset:
Active: failed (Result: exit-code) since Wed 2017-08-30 08:12:52 UTC; 16s ago
Process: 1612 ExecStart=/bin/sh -c ${CELERY_BIN} multi start ${CELERYD_NODES}
Aug 30 08:12:52 cloud-netzbarkeit-03 systemd[1]: Starting Celery Service...
Aug 30 08:12:52 cloud-netzbarkeit-03 systemd[1]: celery.service: Control process
Aug 30 08:12:52 cloud-netzbarkeit-03 systemd[1]: Failed to start Celery Service.
Aug 30 08:12:52 cloud-netzbarkeit-03 systemd[1]: celery.service: Unit entered fa
Aug 30 08:12:52 cloud-netzbarkeit-03 systemd[1]: celery.service: Failed with res
В чем причина? Я вижу, что возникла ошибка на моменте ExecStart, но не понимаю почему. Я взял те же параметры, что и в /etc/init.d/celeryd, а там проблем с ручным запуском celeryd+celerybeat нет.
Вот же логи.
ubuntu@cloud-netzbarkeit-03:/var/run/celery$ systemctl status celery.service
● celery.service - Celery Service
Loaded: loaded (/etc/systemd/system/celery.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2017-08-30 11:14:48 UTC; 6s ago
Process: 1938 ExecStart=/bin/sh -c ${CELERY_BIN} multi start ${CELERYD_NODES} -A ${CELERY_APP} --pidfile=${CELER
Aug 30 11:14:48 cloud-netzbarkeit-03 systemd[1]: Starting Celery Service...
Aug 30 11:14:48 cloud-netzbarkeit-03 systemd[1]: celery.service: Control process exited, code=exited status=217
Aug 30 11:14:48 cloud-netzbarkeit-03 systemd[1]: Failed to start Celery Service.
Aug 30 11:14:48 cloud-netzbarkeit-03 systemd[1]: celery.service: Unit entered failed state.
Aug 30 11:14:48 cloud-netzbarkeit-03 systemd[1]: celery.service: Failed with result 'exit-code'.
Или нужны не эти?
Я плохо разбираюсь в linux, поэтому когда вы сказали по поводу прав, сделал так:
sudo chmod 666 /var/log/celery/
sudo chmod 666 /var/run/celery/
Судя по результату, права выдаются иначе.