Skip to content

Commit dbd260e

Browse files
author
Ask Solem
committed
Added contrib/debian/init.d/celeryevcam
1 parent 2f64f66 commit dbd260e

File tree

1 file changed

+241
-0
lines changed

1 file changed

+241
-0
lines changed

contrib/debian/init.d/celeryevcam

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
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+
#
8+
# :Configuration file: /etc/default/celeryd
9+
#
10+
# To configure celeryd you probably need to tell it where to chdir.
11+
#
12+
# EXAMPLE CONFIGURATION
13+
# =====================
14+
#
15+
# this is an example configuration for a Python project:
16+
#
17+
# /etc/default/celeryd:
18+
#
19+
# # Where to chdir at start.
20+
# CELERYD_CHDIR="/opt/Myproject/"
21+
#
22+
# # Extra arguments to celeryev
23+
# CELERYEV_OPTS="-x"
24+
#
25+
# # Name of the celery config module.#
26+
# CELERY_CONFIG_MODULE="celeryconfig"
27+
#
28+
# # Camera class to use (required)
29+
# CELERYEV_CAM = "myapp.Camera"
30+
#
31+
# EXAMPLE DJANGO CONFIGURATION
32+
# ============================
33+
#
34+
# # Where the Django project is.
35+
# CELERYD_CHDIR="/opt/Project/"
36+
#
37+
# # Name of the projects settings module.
38+
# DJANGO_SETTINGS_MODULE="settings"
39+
#
40+
# # Path to celeryd
41+
# CELERYEV="/opt/Project/manage.py celeryev"
42+
#
43+
# # Camera class to use (required)
44+
# CELERYEV_CAM = "djcelery.snapshot.Camera"
45+
#
46+
# AVAILABLE OPTIONS
47+
# =================
48+
#
49+
# * CELERYEV_OPTS
50+
# Additional arguments to celeryd, see ``celeryd --help`` for a list.
51+
#
52+
# * CELERYD_CHDIR
53+
# Path to chdir at start. Default is to stay in the current directory.
54+
#
55+
# * CELERYEV_PIDFILE
56+
# Full path to the pidfile. Default is /var/run/celeryd.pid.
57+
#
58+
# * CELERYEV_LOGFILE
59+
# Full path to the celeryd logfile. Default is /var/log/celeryd.log
60+
#
61+
# * CELERYEV_LOG_LEVEL
62+
# Log level to use for celeryd. Default is INFO.
63+
#
64+
# * CELERYEV
65+
# Path to the celeryev program. Default is ``celeryev``.
66+
# You can point this to an virtualenv, or even use manage.py for django.
67+
#
68+
# * CELERYEV_USER
69+
# User to run celeryev as. Default is current user.
70+
#
71+
# * CELERYEV_GROUP
72+
# Group to run celeryev as. Default is current user.
73+
74+
75+
### BEGIN INIT INFO
76+
# Provides: celeryev
77+
# Required-Start: $network $local_fs $remote_fs
78+
# Required-Stop: $network $local_fs $remote_fs
79+
# Default-Start: 2 3 4 5
80+
# Default-Stop: 0 1 6
81+
# Short-Description: celery event snapshots
82+
### END INIT INFO
83+
84+
set -e
85+
86+
CELERYEV_PID_FILE="/var/run/celeryev.pid"
87+
CELERYEV_LOG_FILE="/var/log/celeryev.log"
88+
CELERYEV_LOG_LEVEL="INFO"
89+
DEFAULT_CELERYEV="/usr/bin/celeryev"
90+
91+
if test -f /etc/default/celeryd; then
92+
. /etc/default/celeryd
93+
fi
94+
95+
if test -f /etc/default/celeryev; then
96+
. /etc/default/celeryev
97+
fi
98+
99+
CELERYEV=${CELERYEV:-$DEFAULT_CELERYEV}
100+
101+
export CELERY_LOADER
102+
103+
. /lib/lsb/init-functions
104+
105+
CELERYEV_OPTS="$CELERYEV_OPTS -f $CELERYEV_LOG_FILE -l $CELERYEV_LOG_LEVEL"
106+
107+
if [ -z "$CELERYEV_CAM" ]; then
108+
echo "Missing CELERYEV_CAM variable" 1>&2
109+
exit
110+
fi
111+
112+
CELERYEV_OPTS="$CELERYEV_OPTS -c $CELERYEV_CAM"
113+
114+
if [ -n "$2" ]; then
115+
CELERYEV_OPTS="$CELERYEV_OPTS $2"
116+
fi
117+
118+
# Extra start-stop-daemon options, like user/group.
119+
if [ -n "$CELERYEV_USER" ]; then
120+
DAEMON_OPTS="$DAEMON_OPTS --chuid $CELERYEV_USER"
121+
fi
122+
if [ -n "$CELERYEV_GROUP" ]; then
123+
DAEMON_OPTS="$DAEMON_OPTS --group $CELERYEV_GROUP"
124+
fi
125+
126+
if [ -n "$CELERYEV_CHDIR" ]; then
127+
DAEMON_OPTS="$DAEMON_OPTS --chdir $CELERYEV_CHDIR"
128+
elif [ -n "$CELERYD_CHDIR" ]; then
129+
DAEMON_OPTS="$DAEMON_OPTS --chdir $CELERYD_CHDIR"
130+
fi
131+
132+
133+
# Are we running from init?
134+
run_by_init() {
135+
([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
136+
}
137+
138+
139+
check_dev_null() {
140+
if [ ! -c /dev/null ]; then
141+
if [ "$1" = log_end_msg ]; then
142+
log_end_msg 1 || true
143+
fi
144+
if ! run_by_init; then
145+
log_action_msg "/dev/null is not a character device!"
146+
fi
147+
exit 1
148+
fi
149+
}
150+
151+
152+
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
153+
154+
155+
stop_evcam () {
156+
cmd="start-stop-daemon --stop \
157+
--quiet \
158+
$* \
159+
--pidfile $CELERYEV_PID_FILE"
160+
if $cmd; then
161+
log_end_msg 0
162+
else
163+
log_end_msg 1
164+
fi
165+
}
166+
167+
start_evcam () {
168+
cmd="start-stop-daemon --start $DAEMON_OPTS \
169+
--quiet \
170+
--oknodo \
171+
--background \
172+
--make-pidfile \
173+
$* \
174+
--pidfile $CELERYEV_PID_FILE
175+
--exec $CELERYEV -- $CELERYEV_OPTS"
176+
if $cmd; then
177+
log_end_msg 0
178+
else
179+
log_end_msg 1
180+
fi
181+
}
182+
183+
184+
185+
case "$1" in
186+
start)
187+
check_dev_null
188+
log_daemon_msg "Starting celery event snapshots" "celeryev"
189+
start_evcam
190+
;;
191+
stop)
192+
log_daemon_msg "Stopping celery event snapshots" "celeryev"
193+
stop_evcam --oknodo
194+
;;
195+
196+
reload|force-reload)
197+
echo "Use start+stop"
198+
;;
199+
200+
restart)
201+
log_daemon_msg "Restarting celery event snapshots" "celeryev"
202+
stop_evcam --oknodo --retry 30
203+
check_dev_null log_end_msg
204+
start_evcam
205+
;;
206+
207+
try-restart)
208+
log_daemon_msg "Restarting celery event snapshots" "celeryev"
209+
set +e
210+
stop_evcam --retry 30
211+
RET="$?"
212+
set -e
213+
case $RET in
214+
0)
215+
# old daemon stopped
216+
check_dev_null log_end_msg
217+
start_evcam
218+
;;
219+
1)
220+
# daemon not running
221+
log_progress_msg "(not running)"
222+
log_end_msg 0
223+
;;
224+
*)
225+
# failed to stop
226+
log_progress_msg "(failed to stop)"
227+
log_end_msg 1
228+
;;
229+
esac
230+
;;
231+
232+
status)
233+
status_of_proc -p $CELERYEV_PID_FILE $CELERYEV celeryev && exit 0 || exit $?
234+
;;
235+
236+
*)
237+
log_action_msg "Usage: /etc/init.d/celeryev {start|stop|force-reload|restart|try-restart|status}"
238+
exit 1
239+
esac
240+
241+
exit 0

0 commit comments

Comments
 (0)