Skip to content

Commit c383e25

Browse files
author
Matt Long
committed
cleaning up stuff
1 parent ec2ccfd commit c383e25

File tree

3 files changed

+123
-2
lines changed

3 files changed

+123
-2
lines changed

MANIFEST.in

+1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ include MANIFEST.in
22
include .gitignore
33
include README.md
44
include celerywatch/bin/stopCeleryd.sh
5+
include celerywatch-init.d
56
recursive-include celerywatch *.py
67
prune celerywatch/*.pyc

celerywatch-init.d

+120
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
#!/bin/bash -e
2+
3+
### BEGIN INIT INFO
4+
# Provides: celerywatch
5+
# Required-Start: $network $local_fs $remote_fs
6+
# Required-Stop: $network $local_fs $remote_fs
7+
# Default-Start: 2 3 4 5
8+
# Default-Stop: 0 1 6
9+
# Short-Description: celery worker watcher daemon
10+
### END INIT INFO
11+
12+
set -e
13+
14+
DEFAULT_PID_FILE="/var/run/celerywatch.pid"
15+
DEFAULT_LOG_FILE="/var/log/celerywatch.log"
16+
DEFAULT_CELERYWATCH="celeryd_watch"
17+
DEFAULT_LOG_LEVEL="INFO"
18+
DEFAULT_NODES="celery"
19+
20+
# /etc/init.d/celeryd: start and stop the celery task worker daemon.
21+
22+
if test -f /etc/default/celerywatcher; then
23+
. /etc/default/celerywatcher
24+
fi
25+
26+
. /lib/lsb/init-functions
27+
28+
CELERYWATCH_PID_FILE=${CELERYWATCH_PID_FILE:-${CELERYWATCH_PID_FILE:-$DEFAULT_PID_FILE}}
29+
CELERYWATCH_LOG_FILE=${CELERYWATCH_LOG_FILE:-${CELERYWATCH_LOG_FILE:-$DEFAULT_LOG_FILE}}
30+
CELERYWATCH_LOG_LEVEL=${CELERYWATCH_LOG_LEVEL:-${CELERYWATCH_LOGLEVEL:-$DEFAULT_LOG_LEVEL}}
31+
CELERYWATCH=${CELERYWATCH:-$DEFAULT_CELERYWATCH}
32+
CELERYCTL=${CELERYCTL:-"celeryctl"}
33+
34+
export CELERY_LOADER
35+
36+
CELERYWATCH_OPTS="--daemonize --pidfile=$CELERYWATCH_PID_FILE $CELERYWATCH_OPTS"
37+
38+
if [ -n "$2" ]; then
39+
CELERYWATCH_OPTS="$CELERYWATCH_OPTS $2"
40+
fi
41+
42+
# Extra start-stop-daemon options, like user/group.
43+
if [ -n "$CELERYWATCH_USER" ]; then
44+
DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERYWATCH_USER"
45+
fi
46+
if [ -n "$CELERYWATCH_GROUP" ]; then
47+
DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERYWATCH_GROUP"
48+
fi
49+
50+
if [ -n "$CELERYWATCH_CHDIR" ]; then
51+
DAEMON_OPTS="$DAEMON_OPTS --workdir=\"$CELERYWATCH_CHDIR\""
52+
fi
53+
54+
check_dev_null() {
55+
if [ ! -c /dev/null ]; then
56+
echo "/dev/null is not a character device!"
57+
exit 1
58+
fi
59+
}
60+
61+
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
62+
63+
check_celery_script () {
64+
if [ ! -f "$CELERY_SCRIPT" ]; then
65+
echo "WARNING: $CELERY_SCRIPT does not exist, not doing anything"
66+
exit 1
67+
fi
68+
}
69+
70+
stop_watcher () {
71+
start-stop-daemon --stop --pidfile "$CELERYWATCH_PID_FILE" \
72+
--exec $CELERYWATCH || true
73+
74+
while [ -f "$CELERYWATCH_PID_FILE" ]; do
75+
sleep 0.1
76+
done
77+
}
78+
79+
start_watcher () {
80+
source /home/ubuntu/.virtualenvs/crocodoc/bin/activate
81+
start-stop-daemon --start --pidfile "$CELERYWATCH_PID_FILE" \
82+
--chdir "$CELERYWATCH_CHDIR" --exec $CELERYWATCH -- $CELERYWATCH_OPTS || true
83+
}
84+
85+
restart_watcher () {
86+
stop_watcher
87+
start_watcher
88+
}
89+
90+
case "$1" in
91+
start)
92+
check_dev_null
93+
check_celery_script
94+
start_watcher
95+
;;
96+
97+
stop)
98+
check_dev_null
99+
check_celery_script
100+
stop_watcher
101+
;;
102+
103+
status)
104+
#$CELERYCTL status
105+
status_of_proc -p $CELERYWATCH_PID_FILE "$CELERYWATCH" celerydwatch && exit 0 || exit $?
106+
;;
107+
108+
restart)
109+
check_dev_null
110+
check_celery_script
111+
restart_watcher
112+
;;
113+
114+
*)
115+
echo "Usage: /etc/init.d/celerywatch {start|stop|restart|status}"
116+
exit 1
117+
;;
118+
esac
119+
120+
exit 0

celerywatch/daemon.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ def daemonize(self):
4949
sys.stdout.flush()
5050
sys.stderr.flush()
5151
si = file(self.stdin, 'r')
52-
so = file(self.stdout, 'a', 0)
53-
se = file(self.stderr, 'a', 0)
52+
so = file(self.stdout, 'a+', 0)
53+
se = file(self.stderr, 'a+', 0)
5454
os.dup2(si.fileno(), sys.stdin.fileno())
5555
os.dup2(so.fileno(), sys.stdout.fileno())
5656
os.dup2(se.fileno(), sys.stderr.fileno())

0 commit comments

Comments
 (0)