Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / conf / init.d / snf-dispatcher @ 6138f0ef

History | View | Annotate | Download (3 kB)

1 92acc723 Kostas Papadimitriou
#!/bin/sh
2 a1ac271f Kostas Papadimitriou
3 a1ac271f Kostas Papadimitriou
### BEGIN INIT INFO
4 92acc723 Kostas Papadimitriou
# Provides:		  snf-dispatcher
5 92acc723 Kostas Papadimitriou
# Required-Start:	$remote_fs $syslog
6 92acc723 Kostas Papadimitriou
# Required-Stop:	 $remote_fs $syslog
7 92acc723 Kostas Papadimitriou
# Default-Start:	 2 3 4 5
8 92acc723 Kostas Papadimitriou
# Default-Stop:	  0 1 6
9 a1ac271f Kostas Papadimitriou
# Short-Description: Synnefo dispatcher daemon
10 92acc723 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 92acc723 Kostas Papadimitriou
DAEMON=/usr/bin/snf-dispatcher
18 a1ac271f Kostas Papadimitriou
SNF_DSPTCH_OPTS=''
19 a1ac271f Kostas Papadimitriou
SNF_DSPTCH_DEFAULTS_FILE=/etc/default/snf-dispatcher
20 92acc723 Kostas Papadimitriou
SNF_DSPTCH_RUNDIR=/var/run/synnefo
21 92acc723 Kostas Papadimitriou
SNF_DSPTCH_PID_FILE=$SNF_DSPTCH_RUNDIR/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 92acc723 Kostas Papadimitriou
	. $SNF_DSPTCH_DEFAULTS_FILE
29 a1ac271f Kostas Papadimitriou
	SNF_DSPTCH_OPTS=$SNF_DSPTCH_OPTS" -p $SNF_DSPTCH_PID_FILE"
30 92acc723 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 92acc723 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 92acc723 Kostas Papadimitriou
	if start-stop-daemon --start --chuid $SNF_USER --exec $DAEMON -- $SNF_DSPTCH_OPTS; then
43 92acc723 Kostas Papadimitriou
		rc=0
44 92acc723 Kostas Papadimitriou
		sleep 1
45 92acc723 Kostas Papadimitriou
		if ! kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
46 92acc723 Kostas Papadimitriou
			log_failure_msg "snf-dispatcher daemon failed to start"
47 92acc723 Kostas Papadimitriou
			rc=1
48 92acc723 Kostas Papadimitriou
		fi
49 92acc723 Kostas Papadimitriou
	else
50 92acc723 Kostas Papadimitriou
		rc=1
51 92acc723 Kostas Papadimitriou
	fi
52 92acc723 Kostas Papadimitriou
53 92acc723 Kostas Papadimitriou
	if [ $rc -eq 0 ]; then
54 92acc723 Kostas Papadimitriou
		log_end_msg 0
55 92acc723 Kostas Papadimitriou
	else
56 92acc723 Kostas Papadimitriou
		log_end_msg 1
57 92acc723 Kostas Papadimitriou
		rm -f $SNF_DSPTCH_PID_FILE
58 92acc723 Kostas Papadimitriou
	fi
59 a1ac271f Kostas Papadimitriou
} # dispatcher_start
60 a1ac271f Kostas Papadimitriou
61 a1ac271f Kostas Papadimitriou
62 a1ac271f Kostas Papadimitriou
case "$1" in
63 a1ac271f Kostas Papadimitriou
  start)
64 92acc723 Kostas Papadimitriou
	# Ensure the directory containing the pidfile exists
65 92acc723 Kostas Papadimitriou
	# and has the right permissions
66 92acc723 Kostas Papadimitriou
        mkdir -p $SNF_DSPTCH_RUNDIR
67 92acc723 Kostas Papadimitriou
        chown $SNF_USER $SNF_DSPTCH_RUNDIR
68 92acc723 Kostas Papadimitriou
        chmod 0755 $SNF_DSPTCH_RUNDIR
69 92acc723 Kostas Papadimitriou
70 a1ac271f Kostas Papadimitriou
	if "$SNF_DSPTCH_ENABLE"; then
71 92acc723 Kostas Papadimitriou
		log_daemon_msg "Starting snf-dispatcher daemon" "snf-dispatcher"
72 92acc723 Kostas Papadimitriou
		if [ -s $SNF_DSPTCH_PID_FILE ] && kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
73 a1ac271f Kostas Papadimitriou
		log_progress_msg "apparently already running"
74 a1ac271f Kostas Papadimitriou
		log_end_msg 0
75 a1ac271f Kostas Papadimitriou
		exit 0
76 92acc723 Kostas Papadimitriou
		fi
77 92acc723 Kostas Papadimitriou
			dispatcher_start
78 92acc723 Kostas Papadimitriou
		else
79 92acc723 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
	;;
82 a1ac271f Kostas Papadimitriou
  stop)
83 a1ac271f Kostas Papadimitriou
	log_daemon_msg "Stopping snf-dispatcher daemon" "snf-dispatcher"
84 a1ac271f Kostas Papadimitriou
	start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_DSPTCH_PID_FILE
85 a1ac271f Kostas Papadimitriou
	log_end_msg $?
86 a1ac271f Kostas Papadimitriou
	rm -f $SNF_DSPTCH_PID_FILE
87 a1ac271f Kostas Papadimitriou
	;;
88 a1ac271f Kostas Papadimitriou
89 a1ac271f Kostas Papadimitriou
  restart)
90 a1ac271f Kostas Papadimitriou
	set +e
91 a1ac271f Kostas Papadimitriou
	if $SNF_DSPTCH_ENABLE; then
92 92acc723 Kostas Papadimitriou
		log_daemon_msg "Restarting dispatcher daemon" "dispatcher"
93 92acc723 Kostas Papadimitriou
		if [ -s $SNF_DSPTCH_PID_FILE ] && kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
94 a1ac271f Kostas Papadimitriou
		start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_DSPTCH_PID_FILE || true
95 a1ac271f Kostas Papadimitriou
		sleep 1
96 92acc723 Kostas Papadimitriou
		else
97 a1ac271f Kostas Papadimitriou
		log_warning_msg "dispatcher daemon not running, attempting to start."
98 92acc723 Kostas Papadimitriou
			rm -f $SNF_DSPTCH_PID_FILE
99 92acc723 Kostas Papadimitriou
		fi
100 92acc723 Kostas Papadimitriou
			dispatcher_start
101 92acc723 Kostas Papadimitriou
		else
102 92acc723 Kostas Papadimitriou
			[ "$VERBOSE" != no ] && log_warning_msg "dispatcher daemon not enabled in $SNF_DSPTCH_DEFAULTS_FILE, not starting..."
103 a1ac271f Kostas Papadimitriou
	fi
104 a1ac271f Kostas Papadimitriou
	;;
105 a1ac271f Kostas Papadimitriou
106 a1ac271f Kostas Papadimitriou
  status)
107 a1ac271f Kostas Papadimitriou
	status_of_proc -p $SNF_DSPTCH_PID_FILE "$DAEMON" dispatcher
108 a1ac271f Kostas Papadimitriou
	exit $?	# notreached due to set -e
109 a1ac271f Kostas Papadimitriou
	;;
110 a1ac271f Kostas Papadimitriou
  *)
111 a1ac271f Kostas Papadimitriou
	echo "Usage: /etc/init.d/snf-dispatcher {start|stop|restart|status}"
112 a1ac271f Kostas Papadimitriou
	exit 1
113 a1ac271f Kostas Papadimitriou
esac
114 a1ac271f Kostas Papadimitriou
115 a1ac271f Kostas Papadimitriou
exit 0