8cb0689
#!/bin/sh
8cb0689
#
d5ea702
# keepalived   High Availability monitor built upon LVS and VRRP
8cb0689
#
38366d7
# chkconfig:   - 86 14
d5ea702
# description: Robust keepalive facility to the Linux Virtual Server project \
d5ea702
#              with multilayer TCP/IP stack checks.
d5ea702
8cb0689
### BEGIN INIT INFO
8cb0689
# Provides: keepalived
d5ea702
# Required-Start: $local_fs $network $named $syslog
d5ea702
# Required-Stop: $local_fs $network $named $syslog
38366d7
# Should-Start: smtpdaemon httpd
38366d7
# Should-Stop: smtpdaemon httpd
d5ea702
# Default-Start: 
d5ea702
# Default-Stop: 0 1 2 3 4 5 6
d5ea702
# Short-Description: High Availability monitor built upon LVS and VRRP
d5ea702
# Description:       Robust keepalive facility to the Linux Virtual Server
d5ea702
#                    project with multilayer TCP/IP stack checks.
8cb0689
### END INIT INFO
8cb0689
d5ea702
# Source function library.
8cb0689
. /etc/rc.d/init.d/functions
8cb0689
d5ea702
exec="/usr/sbin/keepalived"
d5ea702
prog="keepalived"
d5ea702
config="/etc/keepalived/keepalived.conf"
8cb0689
d5ea702
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
8cb0689
d5ea702
lockfile=/var/lock/subsys/$prog
8cb0689
8cb0689
start() {
d5ea702
    [ -x $exec ] || exit 5
d5ea702
    [ -e $config ] || exit 6
8cb0689
    echo -n $"Starting $prog: "
d5ea702
    daemon $exec $KEEPALIVED_OPTIONS
d5ea702
    retval=$?
8cb0689
    echo
d5ea702
    [ $retval -eq 0 ] && touch $lockfile
d5ea702
    return $retval
8cb0689
}
8cb0689
8cb0689
stop() {
8cb0689
    echo -n $"Stopping $prog: "
d5ea702
    killproc $prog
d5ea702
    retval=$?
8cb0689
    echo
d5ea702
    [ $retval -eq 0 ] && rm -f $lockfile
d5ea702
    return $retval
d5ea702
}
d5ea702
d5ea702
restart() {
d5ea702
    stop
d5ea702
    start
8cb0689
}
8cb0689
8cb0689
reload() {
8cb0689
    echo -n $"Reloading $prog: "
d5ea702
    killproc $prog -1
d5ea702
    retval=$?
8cb0689
    echo
d5ea702
    return $retval
d5ea702
}
d5ea702
d5ea702
force_reload() {
d5ea702
    restart
d5ea702
}
d5ea702
d5ea702
rh_status() {
d5ea702
    status $prog
8cb0689
}
8cb0689
d5ea702
rh_status_q() {
d5ea702
    rh_status &>/dev/null
d5ea702
}
d5ea702
d5ea702
8cb0689
case "$1" in
8cb0689
    start)
d5ea702
        rh_status_q && exit 0
d5ea702
        $1
8cb0689
        ;;
8cb0689
    stop)
d5ea702
        rh_status_q || exit 0
d5ea702
        $1
8cb0689
        ;;
8cb0689
    restart)
d5ea702
        $1
8cb0689
        ;;
d5ea702
    reload)
d5ea702
        rh_status_q || exit 7
d5ea702
        $1
d5ea702
        ;;
d5ea702
    force-reload)
d5ea702
        force_reload
8cb0689
        ;;
8cb0689
    status)
d5ea702
        rh_status
d5ea702
        ;;
d5ea702
    condrestart|try-restart)
d5ea702
        rh_status_q || exit 0
d5ea702
        restart
8cb0689
        ;;
8cb0689
    *)
d5ea702
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
d5ea702
        exit 2
8cb0689
esac
d5ea702
exit $?
8cb0689