File: ipvsadm.init

package info (click to toggle)
ipvsadm 1.20release6-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 248 kB
  • ctags: 456
  • sloc: ansic: 2,411; sh: 276; makefile: 118
file content (116 lines) | stat: -rw-r--r-- 1,804 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/sh

IPVSADM="/sbin/ipvsadm"
IPVSADM_RULES="/etc/ipvsadm.rules"
IPVSADM_CONFIG="/etc/default/ipvsadm"

AUTO="false"
DAEMON="none"		# none|master|backup
IFACE="eth0"

start () {
    case $DAEMON in
	master|backup)
	    echo -n "Starting IPVS Connection Synchronization Daemon ($DAEMON): "
	    $IPVSADM --start-daemon $DAEMON --mcast-interface $IFACE
	    echo "Done."
	    ;;
    esac
}

stop () {
    case $DAEMON in
	master|backup)
	    echo -n "Stopping IPVS Connection Synchronization Daemon ($DAEMON): "
	    $IPVSADM --stop-daemon 
	    echo "Done."
	    ;;
    esac
}

flush () {
    echo -n "Clearing the current IPVS table: " 
    ipvsadm -C
    echo "Done."
}

load () {
    echo -n "Loading IPVS configuration: "
    grep -v "^#" $IPVSADM_RULES | $IPVSADM -R
    echo "Done."
}

save () {
    echo -n "Saving IPVS configuration: "
    echo "# ipvsadm.rules" > $IPVSADM_RULES 
    $IPVSADM -S -n >> $IPVSADM_RULES 
    echo "Done."
}

if [ -f $IPVSADM_CONFIG ]; then
    . $IPVSADM_CONFIG
fi

if [ ! -x $IPVSADM ]; then
    exit 0
fi

if [ ! -f "/proc/net/ip_vs_conn" ]; then
    echo "Kernel does not support IPVS!"
    exit 0
fi

if [ ! -f $IPVSADM_RULES ]; then
    echo "# ipvsadm.rules" > $IPVSADM_RULES
fi

case "$1" in
    start)
	if [ "$AUTO" = "true" ]; then
	    flush
	    load
	fi
	start
        ;;
    stop)
	stop
	if [ "$AUTO" = "true" ]; then
	    save
	    flush
	fi
	;;
    restart)
	stop
	if [ "$AUTO" = "true" ]; then
	    flush
	    load
	fi
	start
	;;
    reload|force-reload)
	if [ "$AUTO" = "true" ]; then
	    flush
	    load
	fi
	;;
    status)
	ipvsadm -L -n
	;;
    rate)
	ipvsadm -L --rate -n
	;;
    load)
	flush
	load
	;;
    save)
	save
	;;
    *)
	echo "Usage: $0
	  {start|stop|restart|status|rate|load|save|reload|force-reload}"
	exit 1
	;;
esac

exit 0