#! /bin/sh
#
# Fail2Ban init.d file - to be launched on boot
#
#		Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#		Modified for Debian
#		 by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#               Adjusted for Fail2Ban
#                by Yaroslav Halchenko <debian@onerussian.com>.
#
# Version:	$Id: debian-initd,v 1.2 2005/11/20 17:07:47 lostcontrol Exp $
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/fail2ban
NAME=fail2ban
DESC=fail2ban
PIDFILE=/var/run/$NAME.pid

test -x $DAEMON || exit 0

# Include fail2ban defaults if available
if [ -f /etc/default/fail2ban ] ; then
	. /etc/default/fail2ban
fi
DAEMON_OPTS=$FAIL2BAN_OPTS
set -e

case "$1" in
	start)
		echo -n "Starting $DESC: "
		[ -f $PIDFILE ] && [ ! -d /proc/`cat $PIDFILE` ] && rm -f $PIDFILE
		start-stop-daemon --start --quiet --pidfile $PIDFILE \
			-b --exec $DAEMON -- $DAEMON_OPTS
		echo "$NAME."
		;;
	stop)
		echo -n "Stopping $DESC: "
		start-stop-daemon --stop --quiet --pidfile $PIDFILE
		echo "$NAME."
		;;
	restart|force-reload)
		echo -n "Restarting $DESC: "
		( $0 stop )
		sleep 1
		$0 start
		;;
    status)
		echo -n "Status of $DESC: "
		if [ ! -e "$PIDFILE" ]; then
			echo "$NAME is not running."
			exit 3
		fi
		if [ ! -r "$PIDFILE" ]; then
			echo "$PIDFILE not readable, status of $NAME unknown."
			exit 4
		fi
		if [ -d /proc/`cat "$PIDFILE"` ]; then
			echo "$NAME is running."
			exit 0
		else
			echo "$NAME is not running but $PIDFILE exists."
			exit 1
		fi
	;;
	*)
		N=/etc/init.d/$NAME
		echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
		exit 1
		;;
esac

exit 0
