|
1 |
#! /bin/sh
|
|
2 |
|
|
3 |
### BEGIN INIT INFO
|
|
4 |
# Provides: snf-dispatcher
|
|
5 |
# Required-Start: $remote_fs $syslog
|
|
6 |
# Required-Stop: $remote_fs $syslog
|
|
7 |
# Default-Start: 2 3 4 5
|
|
8 |
# Default-Stop: 0 1 6
|
|
9 |
# Short-Description: Synnefo dispatcher daemon
|
|
10 |
# Description: Dispatcher is a daemon for the synnefo middleware logic layer
|
|
11 |
### END INIT INFO
|
|
12 |
|
|
13 |
set -e
|
|
14 |
|
|
15 |
# /etc/init.d/snf-dispatcher: start and stop the dispatcher daemon
|
|
16 |
|
|
17 |
DAEMON=snf-dispatcher
|
|
18 |
SNF_DSPTCH_OPTS=''
|
|
19 |
SNF_DSPTCH_DEFAULTS_FILE=/etc/default/snf-dispatcher
|
|
20 |
SNF_DSPTCH_CONFIG_FILE=/etc/snf-dispatcher.conf
|
|
21 |
SNF_DSPTCH_PID_FILE=/var/run/synnefo/snf_dispatcher.pid
|
|
22 |
|
|
23 |
test -x $DAEMON || exit 0
|
|
24 |
|
|
25 |
. /lib/lsb/init-functions
|
|
26 |
|
|
27 |
if [ -s $SNF_DSPTCH_DEFAULTS_FILE ]; then
|
|
28 |
. $SNF_DSPTCH_DEFAULTS_FILE
|
|
29 |
SNF_DSPTCH_OPTS=$SNF_DSPTCH_OPTS" -p $SNF_DSPTCH_PID_FILE"
|
|
30 |
case "x$SNF_DSPTCH_ENABLE" in
|
|
31 |
xtrue|xfalse) ;;
|
|
32 |
*) log_failure_msg "Value of SNF_DSPTCH_ENABLE in $SNF_DSPTCH_DEFAULTS_FILE must be either 'true' or 'false';"
|
|
33 |
log_failure_msg "not starting dispatcher daemon."
|
|
34 |
exit 1
|
|
35 |
;;
|
|
36 |
esac
|
|
37 |
fi
|
|
38 |
|
|
39 |
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
|
|
40 |
|
|
41 |
dispatcher_start() {
|
|
42 |
if [ ! -s "$SNF_DSPTCH_CONFIG_FILE" ]; then
|
|
43 |
log_failure_msg "missing or empty config file $SNF_DSPTCH_CONFIG_FILE"
|
|
44 |
log_end_msg 1
|
|
45 |
exit 0
|
|
46 |
fi
|
|
47 |
if start-stop-daemon --start --chuid $SNF_USER --exec $DAEMON -- $SNF_DSPTCH_OPTS
|
|
48 |
then
|
|
49 |
rc=0
|
|
50 |
sleep 1
|
|
51 |
if ! kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
|
|
52 |
log_failure_msg "snf-dispatcher daemon failed to start"
|
|
53 |
rc=1
|
|
54 |
fi
|
|
55 |
else
|
|
56 |
rc=1
|
|
57 |
fi
|
|
58 |
if [ $rc -eq 0 ]; then
|
|
59 |
log_end_msg 0
|
|
60 |
else
|
|
61 |
log_end_msg 1
|
|
62 |
rm -f $SNF_DSPTCH_PID_FILE
|
|
63 |
fi
|
|
64 |
} # dispatcher_start
|
|
65 |
|
|
66 |
|
|
67 |
case "$1" in
|
|
68 |
start)
|
|
69 |
if "$SNF_DSPTCH_ENABLE"; then
|
|
70 |
log_daemon_msg "Starting snf-dispatcher daemon" "snf-dispatcher"
|
|
71 |
if [ -s $SNF_DSPTCH_PID_FILE ] && kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
|
|
72 |
log_progress_msg "apparently already running"
|
|
73 |
log_end_msg 0
|
|
74 |
exit 0
|
|
75 |
fi
|
|
76 |
dispatcher_start
|
|
77 |
else
|
|
78 |
if [ -s "$SNF_DSPTCH_CONFIG_FILE" ]; then
|
|
79 |
[ "$VERBOSE" != no ] && log_warning_msg "snf-dispatcher daemon not enabled in $SNF_DSPTCH_DEFAULTS_FILE, not starting..."
|
|
80 |
fi
|
|
81 |
fi
|
|
82 |
;;
|
|
83 |
stop)
|
|
84 |
log_daemon_msg "Stopping snf-dispatcher daemon" "snf-dispatcher"
|
|
85 |
start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_DSPTCH_PID_FILE
|
|
86 |
log_end_msg $?
|
|
87 |
rm -f $SNF_DSPTCH_PID_FILE
|
|
88 |
;;
|
|
89 |
|
|
90 |
restart)
|
|
91 |
set +e
|
|
92 |
if $SNF_DSPTCH_ENABLE; then
|
|
93 |
log_daemon_msg "Restarting dispatcher daemon" "dispatcher"
|
|
94 |
if [ -s $SNF_DSPTCH_PID_FILE ] && kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
|
|
95 |
start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_DSPTCH_PID_FILE || true
|
|
96 |
sleep 1
|
|
97 |
else
|
|
98 |
log_warning_msg "dispatcher daemon not running, attempting to start."
|
|
99 |
rm -f $SNF_DSPTCH_PID_FILE
|
|
100 |
fi
|
|
101 |
dispatcher_start
|
|
102 |
else
|
|
103 |
if [ -s "$SNF_DSPTCH_CONFIG_FILE" ]; then
|
|
104 |
[ "$VERBOSE" != no ] && log_warning_msg "dispatcher daemon not enabled in $SNF_DSPTCH_DEFAULTS_FILE, not starting..."
|
|
105 |
fi
|
|
106 |
fi
|
|
107 |
;;
|
|
108 |
|
|
109 |
status)
|
|
110 |
status_of_proc -p $SNF_DSPTCH_PID_FILE "$DAEMON" dispatcher
|
|
111 |
exit $? # notreached due to set -e
|
|
112 |
;;
|
|
113 |
*)
|
|
114 |
echo "Usage: /etc/init.d/snf-dispatcher {start|stop|restart|status}"
|
|
115 |
exit 1
|
|
116 |
esac
|
|
117 |
|
|
118 |
exit 0
|