J'écris une application Django qui utilise le céleri. Jusqu'à présent, je cours sur Ubuntu, mais j'essaye de déployer sur CentOS. Celery est livré avec un script init.d pour les distributions basées sur Debian, mais il ne fonctionne pas sur les distributions basées sur RedHat comme CentOS car il utilise start-stop-daemon. Quelqu'un at-il un équivalent pour RedHat qui utilise les mêmes conventions de variables pour que je puisse réutiliser mon fichier/etc/default/celeryd?init.d céler script pour CentOS?
Répondre
Depuis que je ne l'ai pas eu de réponse, j'ai essayé de rouler mon propre:
#!/bin/sh
#
# chkconfig: 345 99 15
# description: celery init.d script
# Defines the following variables
# CELERYD_CHDIR
# DJANGO_SETTINGS_MODULE
# CELERYD
# CELERYD_USER
# CELERYD_GROUP
# CELERYD_LOG_FILE
CELERYD_PIDFILE=/var/run/celery.pid
if test -f /etc/default/celeryd; then
. /etc/default/celeryd
fi
# Source function library.
. /etc/init.d/functions
# Celery options
CELERYD_OPTS="$CELERYD_OPTS -f $CELERYD_LOG_FILE -l $CELERYD_LOG_LEVEL"
if [ -n "$2" ]; then
CELERYD_OPTS="$CELERYD_OPTS $2"
fi
start() {
cd $CELERYD_CHDIR
daemon --user $CELERYD_USER --pidfile $CELERYD_PIDFILE $CELERYD $CELERYD_OPTS &
}
stop() {
if [[ -s $CELERYD_PIDFILE ]] ; then
echo "Stopping Celery"
killproc -p $CELERYD_PIDFILE python
echo "done!"
rm -f $CELERYD_PIDFILE
else
echo "Celery not running."
fi
}
check_status() {
status -p $CELERYD_PIDFILE python
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
check_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
Salut Lorin, je suis au même stade que vous êtes avec ça. J'ai regardé les docs de base, mais je n'ai pas pu le faire fonctionner sur CentOS, cela a-t-il fonctionné pour vous? – ApPeL
ApPel: Cela fait un moment que j'ai regardé ça. Je pense que cela fonctionne presque. Le problème que j'ai rencontré est que si je fais quelque chose comme "ssh node service celeryd restart", il redémarrera le serveur, mais je ne recevrai pas l'invite. Ce qui signifie qu'il ne peut pas être automatisé correctement avec quelque chose comme le tissu. –
On dirait que le repo "officiel" pourrait être https://github.com/celery/celery/tree/master/extra/centos – cybertoast
Je viens de mettre à jour le lien. Merci –