|
|
cat /etc/init.d/keepalived
* a0 N, L& g# l#! /bin/sh
1 O* T- J- F3 J3 h#
( c! l) _- U A5 i! C# keepalived LVS cluster monitor daemon.
1 k* r9 j: s1 D% K& {#
( o$ C4 S) I3 y$ A* u. M( R1 Y# Written by Andres Salomon <dilinger@voxel.net>6 Z3 K. V* L! b8 x: p" _, U
#0 G* B+ a, J D1 a2 J
### BEGIN INIT INFO4 T* E j, I1 z7 z# y; `+ Y& g
# Provides: keepalived% [; V/ n8 t' ?: H2 X
# Required-Start: $syslog $network $remote_fs- R7 L& y" u3 Q0 D4 q- P
# Required-Stop: $syslog $network $remote_fs
4 n0 a) z& @9 V$ H+ c) y1 ?# Default-Start: 2 3 4 55 p ^" w( m7 B; H# C$ L( q
# Default-Stop: 0 1 6
3 F5 ~: v8 ]. P# Short-Description: Starts keepalived
3 z7 j. M T+ K4 g' ?+ P# Description: Starts keepalived lvs loadbalancer
, a, J% k9 S2 F4 l$ m6 Y### END INIT INFO3 ?8 `( @% {. h7 J* @
PATH=/sbin:/bin:/usr/sbin:/usr/bin6 |" F) `) k1 n( _, k# B3 O' L
DAEMON=/usr/sbin/keepalived' {* K# N' D6 ^) F2 D! b
NAME=keepalived
& M4 A3 @) p; u" A k! d. [DESC=keepalived
4 s7 C; F6 r( m) }9 ]0 p, a+ C. Z" qCONFIG=/etc/keepalived/keepalived.conf
, S9 G5 M; P( K+ vTMPFILES="/tmp/.vrrp /tmp/.healthcheckers"& R& \- p/ r2 N2 J4 w
#includes lsb functions / } N( ]% C; P0 O1 I
. /lib/lsb/init-functions# C% {5 T; ]7 N! F
test -f $CONFIG || exit 0
( H* Q! B# o+ n; } l" n( ^ e# w7 P3 Ntest -f $DAEMON || exit 0) g' [' @4 f( l. [8 A
0 y. X/ Z% x# k9 G1 j C7 z; L# Read configuration variable file if it is present
7 I1 `4 b( I" p' q6 J. }8 ]$ c8 p% C[ -r /etc/default/$NAME ] && . /etc/default/$NAME
6 J) l7 |! F2 n, a$ ocase "$1" in
- v# g" W8 X5 K0 w: j: z8 N start)$ V1 q9 G! s/ j6 e1 O2 K6 g+ d
log_daemon_msg "Starting $DESC" "$NAME"' q$ C/ E/ w& f9 d
for file in $TMPFILES$ n% K% a- F2 r
do % B5 Q2 N4 D& E, r9 n
test -e $file && test ! -L $file && rm $file
2 s! m7 N t8 L* C; [ done4 c X$ _# x# _6 ^7 }2 _
if start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \& R7 L2 P* K9 x Q8 c" O
--exec $DAEMON -- $DAEMON_ARGS; then
' K+ _7 ~3 C! w8 y6 x) O9 C4 R log_end_msg 0
. J( c6 H& g! t% ] else
: Z, H+ e7 a0 F% E- H7 B log_end_msg 1
( z1 V& [3 n! e8 j: S! \ fi* c* a! M4 Z. Q" v6 ?) z' y$ ?
;;
3 v! o4 F1 e( @* l9 b3 { stop)
) E' L0 w" t5 }! ^7 g log_daemon_msg "Stopping $DESC" "$NAME"
: P- d* a* T* C" S+ \$ p1 J5 j t# n if start-stop-daemon --oknodo --stop --quiet --pidfile /var/run/$NAME.pid \+ ^! g, l' | Y$ s/ t
--exec $DAEMON; then4 y- i' K! R+ |2 {5 K
log_end_msg 0
4 f' w- |% n' U0 o else
2 q' z8 f, T. n4 \1 d' k log_end_msg 1
$ i& t9 m" ~* b" {* T0 } fi
4 j. m- a& f& ~& m- [! m/ O' X ;;
* \* B6 M# s' K' g% @ reload|force-reload); H2 O$ C5 j6 S
log_action_begin_msg "Reloading $DESC configuration..."5 z- p5 |" Z( S8 j: Z) [; \/ R6 b
if start-stop-daemon --stop --quiet --signal 1 --pidfile \! |# H2 Z4 d, [$ G
/var/run/$NAME.pid --exec $DAEMON; then
6 |7 x! s$ _, ~! F* L4 X: m log_end_msg 0
+ [, L2 s& W9 l1 Y8 H4 [& @ else
- k. m# t/ O' V% L) } T log_action_end_msg 15 M' K" ?' f: I) @' v/ X
fi
, M7 }* _/ f9 e) x+ O: H ;;0 R3 z9 y- v9 V" \; Z
restart)% s3 K: r# F& j5 s& Q$ d
log_action_begin_msg "Restarting $DESC" "$NAME"
! \) i! {, I1 q8 [7 {3 x start-stop-daemon --stop --quiet --pidfile \/ U1 S; Z4 P3 o
/var/run/$NAME.pid --exec $DAEMON || true
% s4 j8 ]$ c- `/ R j% v; o" Y sleep 1
- q" ?( y6 P' @% U* Y& P# X" I9 A if start-stop-daemon --start --quiet --pidfile \
0 b, P% R1 d) M! w, Z' k8 R /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_ARGS; then
/ t. O2 J {* l8 E( L/ V0 Y log_end_msg 0
( N5 q3 W' D1 ^ else, b1 Y+ u" [' {
log_end_msg 1
' ^( p" w5 g8 ^ ?) K fi
3 I) V# Q: V, u7 K3 V9 \5 A ;;
& H; W) ?% J5 { *)
2 V6 @3 K7 O2 j9 J; W echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2
6 q; S8 W: z. P, a$ E. ]+ o exit 1- F. m" p5 X$ A% L% E
;;1 K1 \3 F! N4 w6 P0 K2 l. W! @
esac3 g* }6 i) h& H, g. x: f
exit 0) F6 x2 q `6 | d2 s
|
|