Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / conf / init.d / snf-dispatcher @ 81243c3d

History | View | Annotate | Download (3 kB)

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=/usr/bin/snf-dispatcher
18
SNF_DSPTCH_OPTS=''
19
SNF_DSPTCH_DEFAULTS_FILE=/etc/default/snf-dispatcher
20
SNF_DSPTCH_RUNDIR=/var/run/synnefo
21
SNF_DSPTCH_PID_FILE=$SNF_DSPTCH_RUNDIR/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 start-stop-daemon --start --chuid $SNF_USER --exec $DAEMON -- $SNF_DSPTCH_OPTS; then
43
		rc=0
44
		sleep 1
45
		if ! kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
46
			log_failure_msg "snf-dispatcher daemon failed to start"
47
			rc=1
48
		fi
49
	else
50
		rc=1
51
	fi
52

    
53
	if [ $rc -eq 0 ]; then
54
		log_end_msg 0
55
	else
56
		log_end_msg 1
57
		rm -f $SNF_DSPTCH_PID_FILE
58
	fi
59
} # dispatcher_start
60

    
61

    
62
case "$1" in
63
  start)
64
	# Ensure the directory containing the pidfile exists
65
	# and has the right permissions
66
        mkdir -p $SNF_DSPTCH_RUNDIR
67
        chown $SNF_USER $SNF_DSPTCH_RUNDIR
68
        chmod 0755 $SNF_DSPTCH_RUNDIR
69

    
70
	if "$SNF_DSPTCH_ENABLE"; then
71
		log_daemon_msg "Starting snf-dispatcher daemon" "snf-dispatcher"
72
		if [ -s $SNF_DSPTCH_PID_FILE ] && kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
73
		log_progress_msg "apparently already running"
74
		log_end_msg 0
75
		exit 0
76
		fi
77
			dispatcher_start
78
		else
79
			[ "$VERBOSE" != no ] && log_warning_msg "snf-dispatcher daemon not enabled in $SNF_DSPTCH_DEFAULTS_FILE, not starting..."
80
	fi
81
	;;
82
  stop)
83
	log_daemon_msg "Stopping snf-dispatcher daemon" "snf-dispatcher"
84
	start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_DSPTCH_PID_FILE
85
	log_end_msg $?
86
	rm -f $SNF_DSPTCH_PID_FILE
87
	;;
88

    
89
  restart)
90
	set +e
91
	if $SNF_DSPTCH_ENABLE; then
92
		log_daemon_msg "Restarting dispatcher daemon" "dispatcher"
93
		if [ -s $SNF_DSPTCH_PID_FILE ] && kill -0 $(cat $SNF_DSPTCH_PID_FILE) >/dev/null 2>&1; then
94
		start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_DSPTCH_PID_FILE || true
95
		sleep 1
96
		else
97
		log_warning_msg "dispatcher daemon not running, attempting to start."
98
			rm -f $SNF_DSPTCH_PID_FILE
99
		fi
100
			dispatcher_start
101
		else
102
			[ "$VERBOSE" != no ] && log_warning_msg "dispatcher daemon not enabled in $SNF_DSPTCH_DEFAULTS_FILE, not starting..."
103
	fi
104
	;;
105

    
106
  status)
107
	status_of_proc -p $SNF_DSPTCH_PID_FILE "$DAEMON" dispatcher
108
	exit $?	# notreached due to set -e
109
	;;
110
  *)
111
	echo "Usage: /etc/init.d/snf-dispatcher {start|stop|restart|status}"
112
	exit 1
113
esac
114

    
115
exit 0
116