root / snf-cyclades-gtools / conf / init.d / snf-ganeti-eventd @ 5984a712
History | View | Annotate | Download (4.3 kB)
1 |
#! /bin/sh |
---|---|
2 |
|
3 |
### BEGIN INIT INFO |
4 |
# Provides: snf-ganeti-eventd |
5 |
# Required-Start: $remote_fs $syslog ganeti |
6 |
# Required-Stop: $remote_fs $syslog |
7 |
# Default-Start: 2 3 4 5 |
8 |
# Default-Stop: 0 1 6 |
9 |
# X-Start-After: ganeti |
10 |
# Short-Description: Synnefo ganeti-eventd daemon |
11 |
# Description: ganeti-eventd is a daemon |
12 |
### END INIT INFO |
13 |
|
14 |
set -e |
15 |
|
16 |
# /etc/init.d/snf-ganeti-eventd: start and stop the ganeti-eventd daemon |
17 |
# script skeleton stolen from rsyncd |
18 |
|
19 |
|
20 |
DAEMON=/usr/sbin/snf-ganeti-eventd |
21 |
SNF_EVENTD_PID_FILE=/var/run/snf-ganeti-eventd.pid |
22 |
SNF_EVENTD_DEFAULTS=/etc/default/snf-ganeti-eventd |
23 |
SNF_EVENTD_OPTS='' |
24 |
SNF_EVENTD_ENABLE=true |
25 |
SNF_USER="root" |
26 |
|
27 |
test -x $DAEMON || exit 0 |
28 |
|
29 |
. /lib/lsb/init-functions |
30 |
|
31 |
if [ -s $SNF_EVENTD_DEFAULTS ]; then |
32 |
. $SNF_EVENTD_DEFAULTS |
33 |
fi |
34 |
|
35 |
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" |
36 |
|
37 |
check_ganeti_master() { |
38 |
MASTER=`/usr/sbin/gnt-cluster getmaster` |
39 |
HOST=`/bin/hostname -f` |
40 |
|
41 |
if [ "x$MASTER" != x$HOST ]; then |
42 |
log_warning_msg "snf-ganeti-eventd should run on the ganeti master only, aborting start (use 'force-start' if you know what you are doing)" |
43 |
log_end_msg 0 |
44 |
exit 0 |
45 |
fi |
46 |
} |
47 |
|
48 |
eventd_start() { |
49 |
if start-stop-daemon --start --chuid $SNF_USER --pidfile $SNF_EVENTD_PID_FILE \ |
50 |
--exec $DAEMON -- $SNF_EVENTD_OPTS |
51 |
then |
52 |
rc=0 |
53 |
sleep 1 |
54 |
if ! kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then |
55 |
log_failure_msg "snf-ganeti-eventd daemon failed to start" |
56 |
rc=1 |
57 |
fi |
58 |
else |
59 |
rc=1 |
60 |
fi |
61 |
if [ $rc -eq 0 ]; then |
62 |
log_end_msg 0 |
63 |
else |
64 |
log_end_msg 1 |
65 |
rm -f $SNF_EVENTD_PID_FILE |
66 |
fi |
67 |
} # eventd_start |
68 |
|
69 |
case "$1" in |
70 |
start) |
71 |
# Check if we are on the Ganeti master node |
72 |
check_ganeti_master |
73 |
|
74 |
if "$SNF_EVENTD_ENABLE"; then |
75 |
log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd" |
76 |
if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then |
77 |
log_progress_msg "apparently already running" |
78 |
log_end_msg 0 |
79 |
exit 0 |
80 |
fi |
81 |
eventd_start |
82 |
else |
83 |
if [ -s "$SNF_EVENTD_DEFAULTS" ]; then |
84 |
[ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..." |
85 |
fi |
86 |
fi |
87 |
;; |
88 |
force-start) |
89 |
if "$SNF_EVENTD_ENABLE"; then |
90 |
log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd" |
91 |
else |
92 |
if [ -s "$SNF_EVENTD_DEFAULTS" ]; then |
93 |
[ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, starting anyway" |
94 |
fi |
95 |
fi |
96 |
|
97 |
if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then |
98 |
log_progress_msg "apparently already running" |
99 |
log_end_msg 0 |
100 |
exit 0 |
101 |
fi |
102 |
eventd_start |
103 |
;; |
104 |
stop) |
105 |
log_daemon_msg "Stopping snf-ganeti-eventd daemon" "snf-ganeti-eventd" |
106 |
start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE |
107 |
log_end_msg $? |
108 |
rm -f $SNF_EVENTD_PID_FILE |
109 |
;; |
110 |
restart) |
111 |
set +e |
112 |
if $SNF_EVENTD_ENABLE; then |
113 |
log_daemon_msg "Restarting snf-ganeti-eventd daemon" "snf-ganeti-eventd" |
114 |
if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then |
115 |
start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE || true |
116 |
sleep 1 |
117 |
else |
118 |
log_warning_msg "snf-ganeti-eventd daemon not running, attempting to start." |
119 |
rm -f $SNF_EVENTD_PID_FILE |
120 |
fi |
121 |
# Check if we are on the Ganeti master node, before starting |
122 |
check_ganeti_master |
123 |
eventd_start |
124 |
else |
125 |
if [ -s "$SNF_EVENTD_DEFAULTS" ]; then |
126 |
[ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..." |
127 |
fi |
128 |
fi |
129 |
;; |
130 |
|
131 |
status) |
132 |
status_of_proc -p $SNF_EVENTD_PID_FILE "$DAEMON" ganeti-eventd |
133 |
exit $? # notreached due to set -e |
134 |
;; |
135 |
*) |
136 |
echo "Usage: /etc/init.d/snf-ganeti-eventd {start|stop|restart|force-start|status}" |
137 |
exit 1 |
138 |
esac |
139 |
|
140 |
exit 0 |