Daemonizing de céleri

Instructions suivantes trouvé ici, j'ai copié le script à partir de github en /etc/init.d/celeryd, puis fait exécutable;

$ ll /etc/init.d/celeryd
-rwxr-xr-x 1 root root 9481 Feb 19 11:27 /etc/init.d/celeryd*

J'ai créé le fichier config /etc/default/celeryd selon les instructions:

# Names of nodes to start
#   most will only start one node:
#CELERYD_NODES="worker1"
#   but you can also start multiple and configure settings
#   for each in CELERYD_OPTS (see `celery multi --help` for examples).
CELERYD_NODES="worker1 worker2 worker3"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/usr/local/bin/celery"
#CELERY_BIN="/virtualenvs/def/bin/celery"

# App instance to use
# comment out this line if you don't use an app
#CELERY_APP="proj"
# or fully qualified:
#CELERY_APP="proj.tasks:app"

# Where to chdir at start.
CELERYD_CHDIR="/path/to/folder/containing/tasks/"

# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=3000 --concurrency=3 --config=celeryconfig"

# %N will be replaced with the first part of 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.
#   You need to create this user manually (or you can choose
#   a user/group combination that already exists, e.g. nobody).
CELERYD_USER="celery"
CELERYD_GROUP="celery"

# If enabled pid and log directories will be created if missing,
# and owned by the userid/group configured.
CELERY_CREATE_DIRS=1

Note: j'ai ajouté le --config=celeryconfig partie dans CELERYD_OPTS.

J'ai créé un nouvel utilisateur céleri avec

sudo useradd -N -M --system -s /bin/false celery

puis création d'un groupe de céleri et a ajouté de l'utilisateur:

$ id celery
uid=999(celery) gid=1005(celery) groups=1005(celery)

J'ai utilisé chown de céleri:le céleri pour les dossiers:

/var/run/céleri/

/var/log/céleri/

Lorsque je tente de démarrer le service, je n'ai pas d'indication d'erreur:

$ sudo service celeryd start
celery init v10.0.
Using config script: /etc/default/celeryd

mais statut me donne "pas de pids ont été trouvés":

$ sudo service celeryd status
celery init v10.0.
Using config script: /etc/default/celeryd
celeryd is stopped: no pids were found

et en effet, le ps -ef donne pas de résultats et pas de fichier PID ou les fichiers journaux sont créés:

$ ll /var/run/celery
total 0
drwxr-sr-x  2 celery celery  40 Feb 19 14:13 ./
drwxr-xr-x 16 root   root   620 Feb 19 12:35 ../

$ ll /var/log/celery
total 8
drwxr-sr-x  2 celery celery 4096 Feb 19 14:13 ./
drwxr-xr-x 13 root   root   4096 Feb 19 11:37 ../

Informations supplémentaires:

$ pip freeze | grep celery
celery==3.1.9

Ce qui me manque? Où dois-je être à la recherche pour plus d'indices quant à pourquoi celeryd n'est pas de commencer?

Pour quiconque est à la recherche d'une Crèche pour gérer diabolisation de céleri check this out aameer.github.io/cirque-comme-une-alternative-à-superviseur
Est-il une raison pourquoi vous avez utilisé -N avec la commande useradd? "-N, --no-user-group N'est pas de créer un groupe avec le même nom que l'utilisateur". Comme vous puis "groupe créé le céleri et l'ajout de l'utilisateur". Sincèrement, je ne sais pas si elles sont équivalentes.

OriginalL'auteur Jinxcat | 2014-02-19