Statistics
| Branch: | Tag: | Revision:

root / init_scripts / celeryd @ 8f17dc8f

History | View | Annotate | Download (3.7 kB)

1
#!/bin/sh -e
2
# ============================================
3
#  celeryd - Starts the Celery worker daemon.
4
# ============================================
5
#
6
# :Usage: /etc/init.d/celeryd {start|stop|force-reload|restart|try-restart|status}
7
# :Configuration file: /etc/default/celeryd
8
#
9
# See http://docs.celeryq.org/en/latest/cookbook/daemonizing.html#init-script-celeryd
10

    
11

    
12
### BEGIN INIT INFO
13
# Provides:          celeryd
14
# Required-Start:    $network $local_fs $remote_fs
15
# Required-Stop:     $network $local_fs $remote_fs
16
# Default-Start:     2 3 4 5
17
# Default-Stop:      0 1 6
18
# Short-Description: celery task worker daemon
19
### END INIT INFO
20

    
21
#set -e
22

    
23
DEFAULT_PID_FILE="/var/run/celeryd@%n.pid"
24
DEFAULT_LOG_FILE="/var/log/celeryd@%n.log"
25
DEFAULT_LOG_LEVEL="INFO"
26
DEFAULT_NODES="celery"
27
DEFAULT_CELERYD="-m celery.bin.celeryd_detach"
28

    
29
# /etc/init.d/celeryd: start and stop the celery task worker daemon.
30

    
31
CELERY_DEFAULTS=${CELERY_DEFAULTS:-"/etc/default/celeryd"}
32

    
33
test -f "$CELERY_DEFAULTS" && . "$CELERY_DEFAULTS"
34
if [ -f "/etc/default/celeryd" ]; then
35
    . /etc/default/celeryd
36
fi
37

    
38
CELERYD_PID_FILE=${CELERYD_PID_FILE:-${CELERYD_PIDFILE:-$DEFAULT_PID_FILE}}
39
CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-${CELERYD_LOGFILE:-$DEFAULT_LOG_FILE}}
40
CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-${CELERYD_LOGLEVEL:-$DEFAULT_LOG_LEVEL}}
41
CELERYD_MULTI=${CELERYD_MULTI:-"celeryd-multi"}
42
CELERYD=${CELERYD:-$DEFAULT_CELERYD}
43
CELERYCTL=${CELERYCTL:="celeryctl"}
44
CELERYD_NODES=${CELERYD_NODES:-$DEFAULT_NODES}
45

    
46
export CELERY_LOADER
47

    
48
if [ -n "$2" ]; then
49
    CELERYD_OPTS="$CELERYD_OPTS $2"
50
fi
51

    
52
CELERYD_LOG_DIR=`dirname $CELERYD_LOG_FILE`
53
CELERYD_PID_DIR=`dirname $CELERYD_PID_FILE`
54
if [ ! -d "$CELERYD_LOG_DIR" ]; then
55
    mkdir -p $CELERYD_LOG_DIR
56
fi
57
if [ ! -d "$CELERYD_PID_DIR" ]; then
58
    mkdir -p $CELERYD_PID_DIR
59
fi
60

    
61
# Extra start-stop-daemon options, like user/group.
62
if [ -n "$CELERYD_USER" ]; then
63
    DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERYD_USER"
64
    chown "$CELERYD_USER" $CELERYD_LOG_DIR $CELERYD_PID_DIR
65
fi
66
if [ -n "$CELERYD_GROUP" ]; then
67
    DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERYD_GROUP"
68
    chgrp "$CELERYD_GROUP" $CELERYD_LOG_DIR $CELERYD_PID_DIR
69
fi
70

    
71
if [ -n "$CELERYD_CHDIR" ]; then
72
    DAEMON_OPTS="$DAEMON_OPTS --workdir=\"$CELERYD_CHDIR\""
73
fi
74

    
75

    
76
check_dev_null() {
77
    if [ ! -c /dev/null ]; then
78
        echo "/dev/null is not a character device!"
79
        exit 1
80
    fi
81
}
82

    
83

    
84
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
85

    
86

    
87
stop_workers () {
88
    $CELERYD_MULTI stop $CELERYD_NODES --pidfile="$CELERYD_PID_FILE"
89
}
90

    
91

    
92
start_workers () {
93
    $CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS        \
94
                         --pidfile="$CELERYD_PID_FILE"      \
95
                         --logfile="$CELERYD_LOG_FILE"      \
96
                         --loglevel="$CELERYD_LOG_LEVEL"    \
97
                         --cmd="$CELERYD"                   \
98
                         $CELERYD_OPTS
99
}
100

    
101

    
102
restart_workers () {
103
    $CELERYD_MULTI restart $CELERYD_NODES $DAEMON_OPTS      \
104
                           --pidfile="$CELERYD_PID_FILE"    \
105
                           --logfile="$CELERYD_LOG_FILE"    \
106
                           --loglevel="$CELERYD_LOG_LEVEL"  \
107
                           --cmd="$CELERYD"                 \
108
                           $CELERYD_OPTS
109
}
110

    
111

    
112

    
113
case "$1" in
114
    start)
115
        check_dev_null
116
        start_workers
117
    ;;
118

    
119
    stop)
120
        check_dev_null
121
        stop_workers
122
    ;;
123

    
124
    reload|force-reload)
125
        echo "Use restart"
126
    ;;
127

    
128
    status)
129
        $CELERYCTL status $CELERYCTL_OPTS
130
    ;;
131

    
132
    restart)
133
        check_dev_null
134
        restart_workers
135
    ;;
136

    
137
    try-restart)
138
        check_dev_null
139
        restart_workers
140
    ;;
141

    
142
    *)
143
        echo "Usage: /etc/init.d/celeryd {start|stop|restart|try-restart|kill}"
144
        exit 1
145
    ;;
146
esac
147

    
148
exit 0