|
|
cat /etc/init.d/keepalived
0 S" [; e" y$ x& ~- Y* E/ R#! /bin/sh
% @0 P8 P' h- e9 m#
4 M1 e. r. x. c. O# keepalived LVS cluster monitor daemon.5 Y- e/ y, w8 q& m- j
#
( I5 x& }9 S i+ h- G# Written by Andres Salomon <dilinger@voxel.net>1 U0 Z6 r4 E+ A, ^
#$ K' M! k8 t8 O, E6 E* l+ `
### BEGIN INIT INFO- H2 j6 z0 a( j. V+ c: A6 h
# Provides: keepalived, W: f2 J, q8 E+ p2 M8 u
# Required-Start: $syslog $network $remote_fs# U! N7 s1 ^: r$ Y' a
# Required-Stop: $syslog $network $remote_fs
! S5 W# _) T. G) T# Default-Start: 2 3 4 5
6 Y' h/ P- ?; J# Default-Stop: 0 1 6
4 T$ e8 E4 q8 e4 U3 f# Short-Description: Starts keepalived
0 Z7 `7 x5 R+ ]& u# Description: Starts keepalived lvs loadbalancer
( ?! g* \& z; {0 w9 u8 E2 r9 N### END INIT INFO8 C4 m$ U0 i5 M
PATH=/sbin:/bin:/usr/sbin:/usr/bin
: a- y" g/ o2 v9 ] E K3 P+ k; lDAEMON=/usr/sbin/keepalived
T/ q- }$ C" Y: BNAME=keepalived: J' v7 @ a/ B, H
DESC=keepalived2 |: O9 t9 H- c) Y8 F3 ?5 U
CONFIG=/etc/keepalived/keepalived.conf. Y( O9 e8 d* u$ }5 S& B/ D
TMPFILES="/tmp/.vrrp /tmp/.healthcheckers"2 J8 ~7 E" ~% Z. j1 M- p2 }" u
#includes lsb functions
- \; b3 w: C" v. /lib/lsb/init-functions- H* x7 ^/ S' b" j- k
test -f $CONFIG || exit 0 9 \2 A, J( Y S# {& L1 H" P
test -f $DAEMON || exit 0) W$ ?2 j/ d$ u- r
! A: a3 H: S% H" s: ]/ y$ G# Read configuration variable file if it is present
8 c4 ^' N) r5 G& c6 z: E4 E[ -r /etc/default/$NAME ] && . /etc/default/$NAME
3 z* Q" n! w( c, F% fcase "$1" in3 Y3 }- \' S1 |3 `# e
start)
( G$ h) i* }3 r3 t log_daemon_msg "Starting $DESC" "$NAME"
7 t2 G: b* ^# }5 P5 H& H0 Q for file in $TMPFILES
9 {0 N3 m4 z S- n H: Z( }" \ do
: L7 R8 A& M7 D" N6 r. }* S, B/ [ test -e $file && test ! -L $file && rm $file
1 _( R# H& q: z6 d* U. v done+ d4 @8 g+ ^0 l6 `4 G+ N
if start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \9 _' _3 K/ q# {5 u2 e! C
--exec $DAEMON -- $DAEMON_ARGS; then. U! V6 n+ z; [9 h# u
log_end_msg 0
J2 @7 {# X( k7 O else2 v) N0 ]/ O/ ?9 E
log_end_msg 1
( v: E& d- i- J5 l8 u' v) s fi) t8 \8 I+ T w
;;
* B: B4 a/ N4 K! E) e8 y: f: C stop)/ P8 Z. h. J$ m
log_daemon_msg "Stopping $DESC" "$NAME"
) \9 u/ w2 G) i E* B. } if start-stop-daemon --oknodo --stop --quiet --pidfile /var/run/$NAME.pid \
: e5 b6 t1 q' I C' Q --exec $DAEMON; then' O# T: R. D' W9 ~4 o8 h+ B6 |
log_end_msg 0* l. Z! ~* X! q0 d! k
else; ?( _3 _; h" S& ^# o
log_end_msg 1/ _* Q( Z$ j: {8 C
fi
7 v/ c& Z3 D) X7 T8 Y5 R& N ;;
; k& A* _8 y' Z# M3 H! I reload|force-reload)% m* g5 k6 \# k ?. e9 \
log_action_begin_msg "Reloading $DESC configuration..."( k2 @; d# t1 B3 H) d7 g
if start-stop-daemon --stop --quiet --signal 1 --pidfile \& y) K0 S) U& r3 w8 Z. m
/var/run/$NAME.pid --exec $DAEMON; then6 Z) S! R3 s |$ u9 [
log_end_msg 0
5 Q: `* i% o+ e" Y1 C" g else+ [1 W* T/ J4 s2 g5 d, I {
log_action_end_msg 1
$ R9 {. U+ W6 G2 ~8 V4 w+ ?/ F fi
- e9 R9 [; ^" Z5 J, ^. l ;;
* K: Q7 m1 }' q! G* J restart)
6 \" u& T W4 A+ u) ` log_action_begin_msg "Restarting $DESC" "$NAME"
4 `/ [. |& d; L! { start-stop-daemon --stop --quiet --pidfile \
* _* a% ]8 Y/ J' G /var/run/$NAME.pid --exec $DAEMON || true 0 f2 L# d' b9 y. f+ ?
sleep 1
% {6 ^+ }9 H2 Q0 s$ e if start-stop-daemon --start --quiet --pidfile \
$ `- P9 l& h8 \! g& o% a8 L8 z0 w* G /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_ARGS; then
1 H$ a/ Y6 b) g' A3 r log_end_msg 0
) x; B9 _' U7 L. B: A% e3 ` else
0 [* {6 u) G. O/ I( Y2 K log_end_msg 12 |7 l: {5 ~) v# j) F% q
fi
$ a( k( B/ E% Y; E( e' o ;;% z& B5 F' g0 O, f' c/ j
*)8 p' O& D2 n# F2 w' L7 H
echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&28 m+ m4 Q; R# o1 A
exit 1
/ o/ X" v. f4 u8 m+ x7 k ;;2 T, E+ d) W0 X& J$ v* }( n
esac
! v9 H7 H# B6 Z% @9 r @" {exit 0
, b, ] k4 M) |, s+ L+ m |
|