Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-gtools / conf / init.d / snf-ganeti-eventd @ 5bb12c7c

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
        if "$SNF_EVENTD_ENABLE"; then
72
            log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
73
            if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
74
                log_progress_msg "apparently already running"
75
                log_end_msg 0
76
                exit 0
77
            fi
78
            # Check if we are on the Ganeti master node
79
            check_ganeti_master
80
            eventd_start
81
        else
82
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
83
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..."
84
            fi
85
        fi
86
        ;;
87
  force-start)
88
        if "$SNF_EVENTD_ENABLE"; then
89
            log_daemon_msg "Starting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
90
        else
91
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
92
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, starting anyway"
93
            fi
94
        fi
95

    
96
        if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
97
            log_progress_msg "apparently already running"
98
            log_end_msg 0
99
            exit 0
100
        fi
101
        eventd_start
102
        ;;
103
  stop)
104
        log_daemon_msg "Stopping snf-ganeti-eventd daemon" "snf-ganeti-eventd"
105
        start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE
106
        log_end_msg $?
107
        rm -f $SNF_EVENTD_PID_FILE
108
        ;;
109
  restart)
110
        set +e
111
        if $SNF_EVENTD_ENABLE; then
112
            log_daemon_msg "Restarting snf-ganeti-eventd daemon" "snf-ganeti-eventd"
113
            if [ -s $SNF_EVENTD_PID_FILE ] && kill -0 $(cat $SNF_EVENTD_PID_FILE) >/dev/null 2>&1; then
114
                start-stop-daemon --stop --quiet --oknodo --pidfile $SNF_EVENTD_PID_FILE || true
115
                sleep 1
116
            else
117
                log_warning_msg "snf-ganeti-eventd daemon not running, attempting to start."
118
                rm -f $SNF_EVENTD_PID_FILE
119
            fi
120
            # Check if we are on the Ganeti master node, before starting
121
            check_ganeti_master
122
            eventd_start
123
        else
124
            if [ -s "$SNF_EVENTD_DEFAULTS" ]; then
125
                [ "$VERBOSE" != no ] && log_warning_msg "snf-ganeti-eventd daemon not enabled in $SNF_EVENTD_DEFAULTS, not starting..."
126
            fi
127
        fi
128
        ;;
129

    
130
  status)
131
        status_of_proc -p $SNF_EVENTD_PID_FILE "$DAEMON" ganeti-eventd
132
        exit $? # notreached due to set -e
133
        ;;
134
  *)
135
        echo "Usage: /etc/init.d/snf-ganeti-eventd {start|stop|restart|force-start|status}"
136
        exit 1
137
esac
138

    
139
exit 0