Celeryd 启动脚本

  • 分享一个 celeryd 的启动脚本

    !/bin/bash

    chkconfig: 345 99 15

    description: celery init.d

    Where to chdir at start.

    CELERYD_CHDIR="/path/to/djproject/"

    How to call "manage.py celeryd_multi"

    CELERYD="/usr/bin/python manage.py celeryd "

    CELERYD_MULTI="$CELERYD_CHDIR/manage.py celeryd_multi"

    Extra arguments to celeryd

    CELERYD_OPTS="--beat --time-limit 300 --concurrency=8"

    Name of the celery config module.

    CELERY_CONFIG_MODULE="celeryconfig"

    %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="root"
    CELERYD_GROUP="celery"

    Name of the projects settings module.

    export DJANGO_SETTINGS_MODULE="settings"
    CELERYD_PIDFILE=/var/run/celery.pid
    # Source function library.
    . /etc/init.d/functions
    # Celery options
    CELERYD_OPTS="-l INFO -B -f /var/log/celery/celery.log --pidfile=${CELERYD_PIDFILE}"
    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