начинающие сельдереи как демоны - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь настроить сельдерей для запуска в производство.Я следовал инструкциям здесь:

https://www.linode.com/docs/development/python/task-queue-celery-rabbitmq/#start-the-workers-as-daemons

В настоящее время я нахожусь на шаге # 7, то есть 'sudo systemctl start celeryd'.Когда я запускаю это, мне говорят, что celeryd.service потерпел неудачу.Я запустил 'journalctl -xe', чтобы найти подробности журнала, которые я скопировал ниже.

Я очень новичок в сельдерее, поэтому мне трудно интерпретировать файл журнала, чтобы выяснить, что происходитнеправильно, поэтому любая помощь будет высоко ценится.Если вам нужна дополнительная информация, пожалуйста, спросите, и я сделаю все возможное, чтобы предоставить ее.

Apr 05 10:44:47 user-admin systemd[6477]: celeryd.service: Failed to determine user credentials: No such process
Apr 05 10:44:47 user-admin systemd[6477]: celeryd.service: Failed at step USER spawning /bin/sh: No such process
-- Subject: Process /bin/sh could not be executed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The process /bin/sh could not be executed and failed.
--
-- The error number returned by this process is 3.
Apr 05 10:44:47 user-admin systemd[1]: celeryd.service: Control process exited, code=exited status=217
Apr 05 10:44:47 user-admin systemd[1]: celeryd.service: Failed with result 'exit-code'.
Apr 05 10:44:47 user-admin systemd[1]: Failed to start Celery Service.
-- Subject: Unit celeryd.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit celeryd.service has failed.
--
-- The result is RESULT.
Apr 05 10:44:47 user-admin sudo[6472]: pam_unix(sudo:session): session closed for user root
Apr 05 10:45:01 user-admin CRON[6481]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 05 10:45:01 user-admin CRON[6482]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Apr 05 10:45:01 user-admin CRON[6481]: pam_unix(cron:session): session closed for user root
Apr 05 10:45:05 user-admin sudo[6485]: djangoadmin : TTY=pts/1 ; PWD=/var/log/celery ; USER=root ; COMMAND=/bin/journalctl -xe

1 Ответ

0 голосов
/ 08 апреля 2019

Удалите /bin/sh -c из ExecStart, ExecStop и ExecRestart (в вашем celeryd.service).

Если у вас есть виртуальная среда в /home/celery/venv и Celery установлен в этой среде, тогда ваш ExecStart (и другие строки Exec *) должны выглядеть следующим образом:

ExecStart=/home/celery/venv/bin/celery multi start ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} 
  ${CELERYD_OPTS}'

Чтобы создать виртуальную среду, сделайте что-то вроде: python3 -m venv /home/celery/venv

Если пользователь сельдерея создан по другому пути, то измените /home/celery в приведенном выше коде на соответствующий «дом» пользователя сельдерея ...

ОБНОВЛЕНИЕ: Если вы использовали тот же файл конфигурации, что и на странице Linode, то вы можете использовать ExecStart=${CELERY_BIN} multi start...

...