Statistics
| Branch: | Tag: | Revision:

root / snf-app / conf / init.d / snf-dispatcher @ a1ac271f

History | View | Annotate | Download (3.3 kB)

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