2010-10-21 4 views
2

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

4

est mieux résolu ici:

Celery CentOS init script

Vous devriez être bon à l'aide que l'on

+1

On dirait que le repo "officiel" pourrait être https://github.com/celery/celery/tree/master/extra/centos – cybertoast

+0

Je viens de mettre à jour le lien. Merci –

3

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 
+0

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

+0

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. –