1 |
iksaif 12/05/30 06:45:54 |
2 |
|
3 |
Added: celery.initd celery.confd |
4 |
Log: |
5 |
New ebuild for celery. Closes bug #342041. |
6 |
|
7 |
(Portage version: 2.1.10.63/cvs/Linux x86_64) |
8 |
|
9 |
Revision Changes Path |
10 |
1.1 dev-python/celery/files/celery.initd |
11 |
|
12 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/celery/files/celery.initd?rev=1.1&view=markup |
13 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/celery/files/celery.initd?rev=1.1&content-type=text/plain |
14 |
|
15 |
Index: celery.initd |
16 |
=================================================================== |
17 |
#!/sbin/runscript |
18 |
# Copyright 1999-2012 Gentoo Foundation |
19 |
# Distributed under the terms of the GNU General Public License v2 |
20 |
# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/files/celery.initd,v 1.1 2012/05/30 06:45:54 iksaif Exp $ |
21 |
|
22 |
extra_started_commands="reload" |
23 |
|
24 |
depend() { |
25 |
need net |
26 |
use rabbitmq logger dns |
27 |
} |
28 |
|
29 |
CELERYD_ENABLED=${CELERYD_ENABLED:-"no"} |
30 |
CELERYD_PID_FILE=${CELERYD_PID_FILE:-"/var/run/celery/celeryd@%n.pid"} |
31 |
CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-"/var/log/celery/celeryd@%n.log"} |
32 |
CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-"INFO"} |
33 |
CELERYD_NODES=${CELERYD_NODES:-"celery"} |
34 |
|
35 |
CELERYBEAT_ENABLED=${CELERYBEAT_ENABLED:-"no"} |
36 |
CELERYBEAT_PID_FILE=${CELERYBEAT_PID_FILE:-"/var/run/celery/celerybeat.pid"} |
37 |
CELERYBEAT_LOG_FILE=${CELERYBEAT_LOG_FILE:-"/var/log/celery/celerybeat.log"} |
38 |
CELERYBEAT_LOG_LEVEL=${CELERYBEAT_LOG_LEVEL:-"INFO"} |
39 |
|
40 |
CELERYEV_ENABLED=${CELERYEV_ENABLED:-"no"} |
41 |
CELERYEV_PID_FILE=${CELERYEV_PID_FILE:-"/var/run/celery/celeryev.pid"} |
42 |
CELERYEV_LOG_FILE=${CELERYEV_LOG_FILE:-"/var/log/celery/celeryev.log"} |
43 |
CELERYEV_LOG_LEVEL=${CELERYEV_LOG_LEVEL:-"INFO"} |
44 |
|
45 |
export CELERY_LOADER |
46 |
|
47 |
if yesno "$CELERY_DJANGO"; then |
48 |
CELERYD=${CELERYD:-"celeryd_detach"} |
49 |
CELERYCTL=${CELERYCTL:-"python manage.py celeryd"} |
50 |
CELERYD_MULTI=${CELERYD_MULTI:-"python manage.py celeryd_multi"} |
51 |
CELERYBEAT=${CELERYBEAT:-"python manage.py celerybeat"} |
52 |
CELERYEV=${CELERYEV:-"python manage.py celeryev"} |
53 |
CELERYEV_CAM=${CELERYEV_CAM:-"djcelery.snapshot.Camera"} |
54 |
else |
55 |
CELERYD=${CELERYD:-"-m celery.bin.celeryd_detach"} |
56 |
CELERYD_MULTI=${CELERYD_MULTI:-"celeryd-multi"} |
57 |
CELERYCTL=${CELERYCTL:-"celeryctl"} |
58 |
CELERYBEAT=${CELERYBEAT:-"celerybeat"} |
59 |
CELERYEV=${CELERYEV:-"celeryev"} |
60 |
fi |
61 |
|
62 |
CELERYD_OPTS="$CELERYD_OPTS -f $CELERYD_LOG_FILE -l $CELERYD_LOG_LEVEL" |
63 |
CELERYBEAT_OPTS="$CELERYBEAT_OPTS -f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL" |
64 |
CELERYEV_OPTS="$CELERYEV_OPTS -f $CELERYEV_LOG_FILE -l $CELERYEV_LOG_LEVEL -c $CELERYEV_CAM" |
65 |
|
66 |
create_dirs() { |
67 |
local logfile="$1" |
68 |
local pidfile="$2" |
69 |
local logdir=`dirname $logfile` |
70 |
local piddir=`dirname $pidfile` |
71 |
|
72 |
if [ ! -d "$logdir" ]; then |
73 |
mkdir -p $logdir |
74 |
fi |
75 |
if [ ! -d "$piddir" ]; then |
76 |
mkdir -p $piddir |
77 |
fi |
78 |
|
79 |
if [ -n "$CELERY_USER" ]; then |
80 |
chown "$CELERY_USER" $logdir $piddir |
81 |
fi |
82 |
if [ -n "$CELERY_GROUP" ]; then |
83 |
chown ":$CELERY_GROUP" $logdir $piddir |
84 |
fi |
85 |
} |
86 |
|
87 |
if [ -n "$CELERY_USER" ]; then |
88 |
DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERY_USER" |
89 |
fi |
90 |
if [ -n "$CELERY_GROUP" ]; then |
91 |
DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERY_GROUP" |
92 |
fi |
93 |
|
94 |
checkconfig() { |
95 |
if [ ! -c /dev/null ]; then |
96 |
eerror "/dev/null is not a character device!" |
97 |
return 1 |
98 |
fi |
99 |
|
100 |
if [ -z "$CELERY_PROJDIR" ]; then |
101 |
eerror "Missing CELERY_PROJDIR variable" |
102 |
return 1 |
103 |
fi |
104 |
|
105 |
if yesno "$CELERYD_ENABLED"; then |
106 |
create_dirs "$CELERYD_LOG_FILE" "$CELERYD_PID_FILE" |
107 |
fi |
108 |
|
109 |
if yesno "$CELERYBEAT_ENABLED"; then |
110 |
create_dirs "$CELERYBEAT_LOG_FILE" "$CELERYBEAT_PID_FILE" |
111 |
fi |
112 |
|
113 |
if yesno "$CELERYEV_ENABLED"; then |
114 |
create_dirs "$CELERYEV_LOG_FILE" "$CELERYEV_PID_FILE" |
115 |
|
116 |
if [ -z "$CELERYEV_CAM" ]; then |
117 |
eerror "Missing CELERYEV_CAM variable" |
118 |
return 1 |
119 |
fi |
120 |
fi |
121 |
|
122 |
return 0 |
123 |
} |
124 |
|
125 |
celery_chdir() { |
126 |
if [ -n "$CELERY_PROJDIR" ]; then |
127 |
cd "$CELERY_PROJDIR" |
128 |
fi |
129 |
} |
130 |
|
131 |
wait_pid () { |
132 |
local pidfile=$1 |
133 |
local timeout=${STOPTIMEOUT:-"10"} |
134 |
local PID=$(cat "${pidfile}" 2>/dev/null) |
135 |
|
136 |
while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do |
137 |
kill -0 $PID 2>/dev/null || break |
138 |
kill -TERM "$PID" |
139 |
timeout=$(($timeout - 1)) |
140 |
sleep 0.5 |
141 |
done |
142 |
|
143 |
[[ "${timeout}" -lt 1 ]] && return 1 |
144 |
[ -f $pidfile ] && rm -f $pidfile |
145 |
return 0 |
146 |
} |
147 |
|
148 |
# celeryd |
149 |
start_workers() { |
150 |
yesno "${CELERYD_ENABLED}" || return 0 |
151 |
|
152 |
$CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS \ |
153 |
--pidfile="$CELERYD_PID_FILE" \ |
154 |
--logfile="$CELERYD_LOG_FILE" \ |
155 |
--loglevel="$CELERYD_LOG_LEVEL" \ |
156 |
--cmd="$CELERYD" \ |
157 |
$CELERYD_OPTS |
158 |
} |
159 |
|
160 |
stop_workers() { |
161 |
yesno "${CELERYD_ENABLED}" || return 0 |
162 |
|
163 |
local timeout=${STOPTIMEOUT:-"10"} |
164 |
|
165 |
$CELERYD_MULTI stop $CELERYD_NODES --pidfile="$CELERYD_PID_FILE" || return 1 |
166 |
|
167 |
# Wait for each node |
168 |
for node in $CELERYD_NODES; do |
169 |
local pidfile=${CELERYD_PID_FILE/\%n/$node} |
170 |
local PID=$(cat "${pidfile}" 2>/dev/null) |
171 |
while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do |
172 |
kill -0 $PID 2>/dev/null || break |
173 |
timeout=$(($timeout - 1)) |
174 |
sleep 0.5 |
175 |
done |
176 |
done |
177 |
|
178 |
[[ "${timeout}" -lt 1 ]] && return 1 |
179 |
return 0 |
180 |
} |
181 |
|
182 |
restart_workers() { |
183 |
yesno "${CELERYD_ENABLED}" || return 0 |
184 |
|
185 |
$CELERYD_MULTI restart $CELERYD_NODES $DAEMON_OPTS \ |
186 |
--pidfile="$CELERYD_PID_FILE" \ |
187 |
--logfile="$CELERYD_LOG_FILE" \ |
188 |
--loglevel="$CELERYD_LOG_LEVEL" \ |
189 |
--cmd="$CELERYD" \ |
190 |
$CELERYD_OPTS |
191 |
} |
192 |
|
193 |
# celeryev |
194 |
start_ev() { |
195 |
yesno "${CELERYEV_ENABLED}" || return 0 |
196 |
|
197 |
ebegin "Starting celeryev" |
198 |
$CELERYEV $CELERYEV_OPTS $DAEMON_OPTS --detach \ |
199 |
--pidfile="$CELERYEV_PID_FILE" |
200 |
eend $? |
201 |
} |
202 |
|
203 |
|
204 |
stop_ev() { |
205 |
yesno "${CELERYEV_ENABLED}" || return 0 |
206 |
|
207 |
ebegin "Stopping celeryev" |
208 |
if [ -f "$CELERYEV_PID_FILE" ]; then |
209 |
wait_pid "$CELERYEV_PID_FILE" |
210 |
else |
211 |
eerror "not running" |
212 |
fi |
213 |
eend $? |
214 |
} |
215 |
|
216 |
# celerybeat |
217 |
start_beat() { |
218 |
yesno "${CELERYBEAT_ENABLED}" || return 0 |
219 |
|
220 |
ebegin "Starting celerybeat" |
221 |
$CELERYBEAT $CELERYBEAT_OPTS $DAEMON_OPTS --detach \ |
222 |
--pidfile="$CELERYBEAT_PID_FILE" |
223 |
eend $? |
224 |
} |
225 |
|
226 |
|
227 |
stop_beat() { |
228 |
yesno "${CELERYBEAT_ENABLED}" || return 0 |
229 |
|
230 |
ebegin "Stopping celerybeat" |
231 |
if [ -f "$CELERYBEAT_PID_FILE" ]; then |
232 |
wait_pid "$CELERYBEAT_PID_FILE" |
233 |
else |
234 |
eerror "not running" |
235 |
fi |
236 |
eend $? |
237 |
} |
238 |
|
239 |
|
240 |
start() { |
241 |
local cr=0 |
242 |
|
243 |
checkconfig || return 1 |
244 |
|
245 |
ebegin "Starting ${SVCNAME}" |
246 |
eindent |
247 |
|
248 |
celery_chdir && \ |
249 |
start_workers && \ |
250 |
start_beat && \ |
251 |
start_ev || cr=1 |
252 |
|
253 |
eoutdent |
254 |
eend $cr |
255 |
} |
256 |
|
257 |
stop() { |
258 |
local cr=0 |
259 |
|
260 |
checkconfig || return 1 |
261 |
|
262 |
ebegin "Stopping ${SVCNAME}" |
263 |
eindent |
264 |
|
265 |
celery_chdir |
266 |
stop_workers || cr=1 |
267 |
stop_beat || cr=1 |
268 |
stop_ev || cr=1 |
269 |
|
270 |
eoutdent |
271 |
eend $cr |
272 |
} |
273 |
|
274 |
reload() { |
275 |
local cr=0 |
276 |
|
277 |
checkconfig || return 1 |
278 |
|
279 |
ebegin "Restarting ${SVCNAME}" |
280 |
eindent |
281 |
|
282 |
celery_chdir |
283 |
restart_workers || cr=1 |
284 |
stop_beat && start_beat || cr=1 |
285 |
stop_ev && start_ev || cr=1 |
286 |
|
287 |
eoutdent |
288 |
eend $cr |
289 |
} |
290 |
|
291 |
status() { |
292 |
checkconfig || return 1 |
293 |
|
294 |
${CELERYCTL} status |
295 |
} |
296 |
|
297 |
|
298 |
|
299 |
1.1 dev-python/celery/files/celery.confd |
300 |
|
301 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/celery/files/celery.confd?rev=1.1&view=markup |
302 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/celery/files/celery.confd?rev=1.1&content-type=text/plain |
303 |
|
304 |
Index: celery.confd |
305 |
=================================================================== |
306 |
# /etc/conf.d/celery |
307 |
|
308 |
############################################################################## |
309 |
# GLOBAL CONFIGURATION |
310 |
|
311 |
# User and group |
312 |
#CELERY_USER="celery" |
313 |
#CELERY_GROUP="celery" |
314 |
|
315 |
# Is this for a django project ? |
316 |
# If 'yes' it will automatically setup CELERYD, CELERYCTL |
317 |
# CELERYD_MULTI, CELERYBEAT, CELERYEV and CELERYEV_CAM for a |
318 |
# django project, but you can still override them here. |
319 |
#CELERY_DJANGO="yes" |
320 |
|
321 |
# Full path to the python project directory. |
322 |
#CELERY_PROJDIR="/var/lib/myproject" |
323 |
|
324 |
############################################################################## |
325 |
# CELERYD |
326 |
|
327 |
#CELERYD_ENABLED="yes" |
328 |
|
329 |
# celeryd notes |
330 |
#CELERYD_NODES="celery" |
331 |
|
332 |
# celeryd options |
333 |
# Example: 5 minute hard time limit for tasks |
334 |
#CELERYD_OPTS="--time-limit=300" |
335 |
|
336 |
# Location and level of the celeryd log file |
337 |
#CELERYD_LOG_FILE=/var/log/celery/celeryd@%n.log |
338 |
#CELERYD_LOG_LEVEL="INFO" |
339 |
|
340 |
# Location of the celeryd pid file |
341 |
#CELERYD_PID_FILE=/var/run/celery/celeryd@%n.pid |
342 |
|
343 |
############################################################################## |
344 |
# CELERYBEAT |
345 |
|
346 |
#CELERYBEAT_ENABLED="yes" |
347 |
|
348 |
# celerybeat options |
349 |
#CELERYBEAT_OPTS="" |
350 |
|
351 |
# Location and level of the celerybeat log file |
352 |
#CELERYBEAT_LOG_FILE=/var/log/celery/celerybeat.log |
353 |
#CELERYBEAT_LOG_LEVEL="INFO" |
354 |
|
355 |
# Location of the celerybeat pid file |
356 |
#CELERYBEAT_PID_FILE=/var/run/celery/celerybeat.pid |
357 |
|
358 |
############################################################################## |
359 |
# CELERYEV |
360 |
|
361 |
#CELERYEV_ENABLED="yes" |
362 |
|
363 |
# celeryev options |
364 |
#CELERYEV_OPTS="" |
365 |
|
366 |
# Location and level of the celeryev log file |
367 |
#CELERYEV_LOG_FILE=/var/log/celery/celeryev.log |
368 |
#CELERYEV_LOG_LEVEL="INFO" |
369 |
|
370 |
# Location of the celeryev pid file |
371 |
#CELERYEV_PID_FILE=/var/run/celery/celeryev.pid |