Statistics
| Branch: | Tag: | Revision:

root / doc / examples / ganeti.initd.in @ d2baa21d

History | View | Annotate | Download (2.4 kB)

1
#!/bin/sh
2
# ganeti node daemon starter script
3
# based on skeleton from Debian GNU/Linux
4
### BEGIN INIT INFO
5
# Provides:          ganeti
6
# Required-Start:    $syslog $remote_fs
7
# Required-Stop:     $syslog $remote_fs
8
# Default-Start:     2 3 4 5
9
# Default-Stop:      0 1 6
10
# Short-Description: Ganeti Cluster Manager
11
# Description:       Ganeti Cluster Manager
12
### END INIT INFO
13

    
14
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
15
DESC="Ganeti cluster"
16

    
17
NODED="ganeti-noded"
18
MASTERD="ganeti-masterd"
19
CONFD="ganeti-confd"
20
RAPI="ganeti-rapi"
21

    
22
DAEMON_UTIL=@PKGLIBDIR@/daemon-util
23

    
24
SCRIPTNAME="@SYSCONFDIR@/init.d/ganeti"
25

    
26
test -f "@PREFIX@/sbin/$NODED" || exit 0
27

    
28
. /lib/lsb/init-functions
29

    
30
check_exitcode() {
31
    RC=$1
32
    case $RC in
33
        0)
34
            log_action_end_msg 0
35
            ;;
36
        11)
37
            log_action_end_msg 0 "not master"
38
            ;;
39
        *)
40
            log_action_end_msg 1 "exit code $RC"
41
            ;;
42
    esac
43
}
44

    
45
start_action() {
46
    # called as start_action daemon-name
47
    local daemon="$1"
48
    log_action_begin_msg "$daemon"
49
    $DAEMON_UTIL start "$@"
50
    check_exitcode $?
51
}
52

    
53
stop_action() {
54
    # called as stop_action daemon-name
55
    local daemon="$1"
56
    log_action_begin_msg "$daemon"
57
    $DAEMON_UTIL stop "$@"
58
    check_exitcode $?
59
}
60

    
61
maybe_do() {
62
    requested="$1"; shift
63
    action="$1"; shift
64
    target="$1"
65
    if [ -z "$requested" -o "$requested" = "$target" ]; then
66
        $action "$@"
67
    fi
68
}
69

    
70
start_all() {
71
    if ! $DAEMON_UTIL check-config; then
72
        log_warning_msg "Incomplete configuration, will not run."
73
        exit 0
74
    fi
75

    
76
    for i in $NODED $MASTERD $CONFD $RAPI; do \
77
        maybe_do "$1" start_action $i
78
    done
79
}
80

    
81
stop_all() {
82
    for i in $RAPI $CONFD $MASTERD $NODED; do \
83
        maybe_do "$1" stop_action $i
84
    done
85
}
86

    
87
if [ -n "$2" -a \
88
    "$2" != "$NODED" -a \
89
    "$2" != "$CONFD" -a \
90
    "$2" != "$MASTERD" -a \
91
    "$2" != "$RAPI" ]; then
92
    log_failure_msg "Unknown daemon '$2' requested"
93
    exit 1
94
fi
95

    
96
case "$1" in
97
    start)
98
        log_daemon_msg "Starting $DESC" "$2"
99
        start_all "$2"
100
        ;;
101
    stop)
102
        log_daemon_msg "Stopping $DESC" "$2"
103
        stop_all "$2"
104
        ;;
105
    restart|force-reload)
106
        log_daemon_msg "Restarting $DESC" "$2"
107
        stop_all "$2"
108
        start_all "$2"
109
        ;;
110
    *)
111
        log_success_msg "Usage: $SCRIPTNAME {start|stop|force-reload|restart}"
112
        exit 1
113
        ;;
114
esac
115

    
116
exit 0