Paul P. Komkoff e5be7d
#!/bin/sh
Paul P. Komkoff e5be7d
#
Paul P. Komkoff e5be7d
# /etc/init.d/conntrackd
Paul P. Komkoff e5be7d
#
Paul P. Komkoff e5be7d
# Created for RHEL/Centos by: James Shubin <purpleidea@gmail.com>
Paul P. Komkoff e5be7d
#
Paul P. Komkoff e5be7d
### BEGIN INIT INFO
Paul P. Komkoff e5be7d
# Provides: conntrackd
Paul P. Komkoff e5be7d
# Required-Start: $network $syslog
Paul P. Komkoff e5be7d
# Required-Stop: $network $syslog
Paul P. Komkoff e5be7d
# Should-Start: $named
Paul P. Komkoff e5be7d
# Should-Stop: $named
Paul P. Komkoff e5be7d
# Default-Stop: 0 1 6
Paul P. Komkoff e5be7d
# Short-Description: daemon for netfilter connection tracking
Paul P. Komkoff e5be7d
# Description: This is a daemon for replicating connection state across two
Paul P. Komkoff e5be7d
#              machines. See http://conntrack-tools.netfilter.org/
Paul P. Komkoff e5be7d
### END INIT INFO
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
# the following is the chkconfig init header
Paul P. Komkoff e5be7d
#
Paul P. Komkoff e5be7d
# conntrackd: daemon for netfilter connection tracking
Paul P. Komkoff e5be7d
#
Orion Poplawski 97c956
# chkconfig: - 97 03
Paul P. Komkoff e5be7d
# description: This is a daemon for replicating connection state across two
Paul P. Komkoff e5be7d
#              machines. See http://conntrack-tools.netfilter.org/
Paul P. Komkoff e5be7d
#
Paul P. Komkoff e5be7d
# processname: conntrackd
Paul P. Komkoff e5be7d
# pidfile: /var/run/conntrackd.pid
Paul P. Komkoff e5be7d
#
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
# Source function library.
Paul P. Komkoff e5be7d
. /etc/rc.d/init.d/functions
Paul P. Komkoff e5be7d
Orion Poplawski 97c956
exec="/usr/sbin/conntrackd"
Orion Poplawski 97c956
prog="conntrackd"
Orion Poplawski 97c956
config=/etc/conntrackd/conntrackd.conf
Orion Poplawski 97c956
Paul P. Komkoff e5be7d
CONNTRACKD_CONFIG=
Paul P. Komkoff e5be7d
CONNTRACKD_ARGS=
Paul P. Komkoff e5be7d
Orion Poplawski 97c956
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
Orion Poplawski 97c956
Orion Poplawski 97c956
lockfile=/var/lock/subsys/$prog
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
CONNTRACKD_CONFIG_ARGS=
Paul P. Komkoff e5be7d
if [ -n "$CONNTRACKD_CONFIG" ]
Paul P. Komkoff e5be7d
then
Orion Poplawski 97c956
        CONNTRACKD_CONFIG_ARGS="-C $CONNTRACKD_CONFIG"
Paul P. Komkoff e5be7d
fi
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
start() {
Orion Poplawski 97c956
        [ -x $exec ] || exit 5
Orion Poplawski 97c956
        [ -f $config ] || exit 6
Orion Poplawski 97c956
Orion Poplawski 97c956
        echo -n $"Starting $prog: "
Orion Poplawski 97c956
        # If Linux kernel is < 2.6.22, disable TCP window tracking
Orion Poplawski 97c956
        if uname -r | {
Orion Poplawski 97c956
                # version cmp courtesy of geirha in #bash
Orion Poplawski 97c956
                IFS=.- read -r a b c _; [ "$((a*10000+b*100+c))" -lt 20622 ];
Orion Poplawski 97c956
        }; then
Orion Poplawski 97c956
                echo 1 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_be_liberal
Orion Poplawski 97c956
        fi
Orion Poplawski 97c956
        daemon --check $prog $prog -d $CONNTRACKD_CONFIG_ARGS $CONNTRACKD_ARGS
Orion Poplawski 97c956
        retval=$?
Orion Poplawski 97c956
        echo
Orion Poplawski 97c956
        [ $retval -eq 0 ] && touch $lockfile
Paul P. Komkoff e5be7d
}
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
stop() {
Orion Poplawski 97c956
        echo -n $"Stopping $prog: "
Orion Poplawski 97c956
        killproc $prog
Orion Poplawski 97c956
        retval=$?
Orion Poplawski 97c956
        echo
Orion Poplawski 97c956
        if [ $retval -eq 0 ]; then
Orion Poplawski 97c956
                rm -f $lockfile
Orion Poplawski 97c956
                rm -f /var/run/${prog}.pid
Orion Poplawski 97c956
        fi
Paul P. Komkoff e5be7d
}
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
restart() {
Orion Poplawski 97c956
        stop
Orion Poplawski 97c956
        start
Paul P. Komkoff e5be7d
}
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
# XXX: can conntrackd reload?
Paul P. Komkoff e5be7d
reload() {
Orion Poplawski 97c956
        echo -n $"Reloading $prog configuration: "
Orion Poplawski 97c956
        killproc -HUP $prog
Orion Poplawski 97c956
        retval=$?
Orion Poplawski 97c956
        echo
Orion Poplawski 97c956
        return $retval
Orion Poplawski 97c956
}
Orion Poplawski 97c956
Orion Poplawski 97c956
force_reload() {
Orion Poplawski 97c956
        restart
Orion Poplawski 97c956
}
Orion Poplawski 97c956
Orion Poplawski 97c956
rh_status() {
Orion Poplawski 97c956
        # run checks to determine if the service is running or use generic status
Orion Poplawski 97c956
        status $prog
Orion Poplawski 97c956
}
Orion Poplawski 97c956
Orion Poplawski 97c956
rh_status_q() {
Orion Poplawski 97c956
        rh_status >/dev/null 2>&1
Paul P. Komkoff e5be7d
}
Paul P. Komkoff e5be7d
Paul P. Komkoff e5be7d
# See how we were called.
Paul P. Komkoff e5be7d
case "$1" in
Orion Poplawski 97c956
        start)
Orion Poplawski 97c956
                rh_status_q && exit 0
Orion Poplawski 97c956
                $1
Orion Poplawski 97c956
                ;;
Orion Poplawski 97c956
        stop)
Orion Poplawski 97c956
                rh_status_q || exit 0
Orion Poplawski 97c956
                $1
Orion Poplawski 97c956
                ;;
Orion Poplawski 97c956
        restart)
Orion Poplawski 97c956
                $1
Orion Poplawski 97c956
                ;;
Orion Poplawski 97c956
        reload)
Orion Poplawski 97c956
                rh_status_q || exit 7
Orion Poplawski 97c956
                $1
Orion Poplawski 97c956
                ;;
Orion Poplawski 97c956
        force-reload)
Orion Poplawski 97c956
                force_reload
Orion Poplawski 97c956
                ;;
Orion Poplawski 97c956
        status)
Orion Poplawski 97c956
                rh_status
Orion Poplawski 97c956
                ;;
Orion Poplawski 97c956
        condrestart|try-restart)
Orion Poplawski 97c956
                rh_status_q || exit 0
Orion Poplawski 97c956
                restart
Orion Poplawski 97c956
                ;;
Orion Poplawski 97c956
        *)
Orion Poplawski 97c956
                echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
Orion Poplawski 97c956
                exit 2
Orion Poplawski 97c956
                ;;
Paul P. Komkoff e5be7d
esac
Orion Poplawski 97c956
exit $?