|
|
cat /etc/init.d/keepalived
3 ?/ n0 L9 B* Q) l; S8 }- q#! /bin/sh0 H- [7 _% o7 F9 o
#. y; @9 s) c; ]) |4 T! ]2 R
# keepalived LVS cluster monitor daemon.$ ~7 ]2 I* |6 U3 E+ Y- X5 ?2 d
#4 d: O% j2 _* J( N4 }
# Written by Andres Salomon <dilinger@voxel.net>
m# n* M% M: R#7 J7 m1 j, |# \8 {$ U+ F
### BEGIN INIT INFO
/ B" @; o6 S' T% K! T/ C4 o# Provides: keepalived
( m* d! D: g1 C3 k2 g4 y+ T# Required-Start: $syslog $network $remote_fs. L- T3 r* e* I5 s4 m
# Required-Stop: $syslog $network $remote_fs
) c8 d. Z& _3 j$ K/ }' g+ X# Default-Start: 2 3 4 5
& _9 s; @, K* L! U) X0 F# Default-Stop: 0 1 6+ L7 b& H! X; a' [
# Short-Description: Starts keepalived
4 E, w8 i( A. ~2 _: a, F( J0 o# Description: Starts keepalived lvs loadbalancer" J5 K' \$ p9 z$ t2 M3 P9 n& [/ j
### END INIT INFO
) d, t1 H I9 fPATH=/sbin:/bin:/usr/sbin:/usr/bin
- v( E; ?% I6 O& X3 r a4 MDAEMON=/usr/sbin/keepalived. n+ j' ]) M/ w6 U/ p
NAME=keepalived* |- [% E* O8 z8 N4 F/ O5 `
DESC=keepalived
4 U, z. _' u4 E9 hCONFIG=/etc/keepalived/keepalived.conf5 B0 r7 U, G7 {+ @( Q! Q
TMPFILES="/tmp/.vrrp /tmp/.healthcheckers"3 s# ~1 U( }( Y8 |
#includes lsb functions
4 L/ f/ W1 q1 K* j& r1 e. /lib/lsb/init-functions
2 O; S* B% B* e( p" ?2 E6 _test -f $CONFIG || exit 0 ) ?! g$ H+ U# Q5 } _
test -f $DAEMON || exit 0
! `! P3 V; _ k" i
! Q& A9 d$ b! }# Read configuration variable file if it is present: Y9 W% C- N! i3 Q8 }( E* m
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# k% W# k7 M" |% f. f6 qcase "$1" in) b9 s: r1 {2 x: k$ M) d3 T! T5 O! b
start)
& R% k/ g% `7 k! J4 X log_daemon_msg "Starting $DESC" "$NAME"- f8 t% n8 ~1 y- c) _) v
for file in $TMPFILES) P# y: u, W' } t* P
do
' I& n8 U' ^! O0 z. S test -e $file && test ! -L $file && rm $file p; @: S5 e# s! W! @
done
$ L+ A# h/ B2 l. Y- L* D- N if start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
) @4 @# E3 ^+ i3 K- P2 r7 H --exec $DAEMON -- $DAEMON_ARGS; then8 {" ?: Z5 T ^8 g' V
log_end_msg 0
8 o) ?+ n2 a5 e( J else$ v* `' i6 {5 C2 A2 n
log_end_msg 1
' e$ `; P" C$ o, c fi& M4 p1 o, r, [9 J. ^$ i5 U
;;
% u8 W% `: i0 [% @8 ]& [$ `: A6 n stop)" z+ k, K& P* r! D E- \3 h
log_daemon_msg "Stopping $DESC" "$NAME"
! `# y2 n# A$ _6 h$ J. D3 | if start-stop-daemon --oknodo --stop --quiet --pidfile /var/run/$NAME.pid \8 B* @* l- }2 y7 C X: z. w8 _' }2 x
--exec $DAEMON; then
6 e4 y$ I% `( u* h+ Q, [" M. I% m log_end_msg 0# K! w9 n: q- ^; T9 X! |
else
9 J1 J! |) I" s: Y log_end_msg 1
" O) }+ h5 s& p, x' h fi
& @9 h; L, t4 O/ l/ x" ~% v, I6 M ;;
+ F( D9 C+ [4 c0 y reload|force-reload)
. O3 P+ v$ C$ p* [7 F log_action_begin_msg "Reloading $DESC configuration..."1 H- X1 T' _; F- M! C: Q
if start-stop-daemon --stop --quiet --signal 1 --pidfile \. S1 `+ t) E2 m
/var/run/$NAME.pid --exec $DAEMON; then
+ f6 S2 L, }' L Y5 z1 C. o/ h log_end_msg 0
- Y- p$ E5 m) T- U: ~8 e: A7 a else6 w& ^/ ~% l* G% n1 v$ j
log_action_end_msg 1( @7 H# S6 v/ ?$ R
fi. w% F U' g5 l
;;
3 H; q. z; Y* K9 K5 O2 `9 v restart)( h f, T" q& Y: k2 n) m R
log_action_begin_msg "Restarting $DESC" "$NAME"! @% g' B3 Z; q* V) ?( ?+ E6 l% p
start-stop-daemon --stop --quiet --pidfile \4 z) `- w: c, s/ J( O' N4 [8 E
/var/run/$NAME.pid --exec $DAEMON || true ! g! g# Z! `2 ?* \& l1 U
sleep 1, `+ n! `& G5 x6 Y. }
if start-stop-daemon --start --quiet --pidfile \
! N$ D5 f S6 z- G+ ` /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_ARGS; then% e* [% ^9 e9 O& J! L
log_end_msg 0
# u' m3 p' P$ \6 f" g% u8 @ else# G: u0 k9 D1 D, N$ \: w' X
log_end_msg 1 V! v3 I' X2 z! J0 ^3 A6 K
fi3 j6 T1 \; x. x7 }" ^2 d
;;1 W/ h6 Q# ^( E, M
*)
* X& l& U k x& Q0 _3 } echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2; K) D$ X; h* [/ T1 R* f) l' b( F% X
exit 1
; @7 M z5 u% _$ M. @& W1 X4 o* l ;;% b& b) r$ F/ k2 K2 ^5 C6 D ^) P4 g
esac' f0 J: |4 [8 A# D+ U3 Q |2 x
exit 0/ p% M7 k1 m. d x4 X
|
|