Eu tive o mesmo problema há pouco tempo.
- O uso do arquivo
CELERY_CONFIG_MODULE
in/etc/default/celery
foi útil para mim. - Verifique também se você tem o usuário chamado
celery
. Você pode executar aipo sob outro usuário não privilegiado. Eu lanço aipo sob meu próprio usuário.
Abaixo está o meu arquivo /etc/default/celery
:
ENABLED="true"
CELERYD_NODES="celery_worker"
# Where to chdir at start.
CELERYD_CHDIR="/path/to/my/project"
CELERYD_OPTS="--time-limit=300 --concurrency=8"
CELERY_CONFIG_MODULE="celeryd"
CELERY_APP="celeryd:celery"
# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%N.pid"
# Workers should run as an unprivileged user.
CELERYD_USER="my_user_name"
CELERYD_GROUP="my_user_name"
CELERY_CREATE_DIRS=1
CELERY_BIN="/usr/local/bin/celery"
Aqui está o meu arquivo /etc/systemd/system/celery.service
palavra por palavra:
[Unit]
Description=Celery Service
After=network.target
[Service]
Type=forking
User=user
Group=group
EnvironmentFile=-/etc/default/celeryd
WorkingDirectory=/opt/celery
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
--pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
[Install]
WantedBy=multi-user.target