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 |