Merge pull request #240 from jpmx/master

bug fixed on redhat-initd

per @opoplawski  blessing
pull/345/merge
Yaroslav Halchenko 2013-08-31 06:57:42 -07:00
commit f1487bfb74
1 changed files with 48 additions and 45 deletions

View File

@ -1,38 +1,42 @@
#!/bin/bash #!/bin/bash
# #
# chkconfig: 345 92 08 # chkconfig: 345 92 08
# description: Fail2ban daemon # processname: fail2ban-server
# http://fail2ban.sourceforge.net/wiki/index.php/Main_Page # config: /etc/fail2ban/fail2ban.conf
# process name: fail2ban-server # pidfile: /var/run/fail2ban/fail2ban.pid
# # description: fail2ban is a daemon to ban hosts that cause multiple authentication errors
#
# Author: Tyler Owen
# #
### BEGIN INIT INFO
# Provides: fail2ban
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $time $network $syslog iptables firehol shorewall ferm
# Should-Stop: $network $syslog iptables firehol shorewall ferm
# Default-Start: 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop fail2ban
# Description: Start/Stop fail2ban, a daemon to ban hosts that cause multiple authentication errors
### END INIT INFO
# Source function library. # Source function library.
. /etc/init.d/functions . /etc/rc.d/init.d/functions
# Check that the config file exists # Check that the config file exists
[ -f /etc/fail2ban/fail2ban.conf ] || exit 0 [ -f /etc/fail2ban/fail2ban.conf ] || exit 0
FAIL2BAN="/usr/bin/fail2ban-client" FAIL2BAN="/usr/bin/fail2ban-client"
prog=fail2ban-server
lockfile=${LOCKFILE-/var/lock/subsys/fail2ban}
socket=${SOCKET-/var/run/fail2ban/fail2ban.sock}
pidfile=${PIDFILE-/var/run/fail2ban/fail2ban.pid}
RETVAL=0 RETVAL=0
getpid() {
pid=`ps -eo pid,comm | grep fail2ban- | awk '{ print $1 }'`
}
start() { start() {
echo -n $"Starting fail2ban: " echo -n $"Starting fail2ban: "
getpid ${FAIL2BAN} -x start > /dev/null
if [ -z "$pid" ]; then
rm -rf /var/run/fail2ban/fail2ban.sock # in case of unclean shutdown
$FAIL2BAN start > /dev/null
RETVAL=$? RETVAL=$?
fi if [ $RETVAL = 0 ]; then
if [ $RETVAL -eq 0 ]; then touch ${lockfile}
touch /var/lock/subsys/fail2ban
echo_success echo_success
else else
echo_failure echo_failure
@ -43,21 +47,22 @@ start() {
stop() { stop() {
echo -n $"Stopping fail2ban: " echo -n $"Stopping fail2ban: "
getpid ${FAIL2BAN} stop > /dev/null
RETVAL=$? RETVAL=$?
if [ -n "$pid" ]; then if [ $RETVAL = 0 ]; then
$FAIL2BAN stop > /dev/null rm -f ${lockfile} ${pidfile}
sleep 1
getpid
if [ -z "$pid" ]; then
rm -f /var/lock/subsys/fail2ban
echo_success echo_success
else else
echo_failure echo_failure
fi fi
else echo
echo_failure return $RETVAL
fi }
reload() {
echo "Reloading fail2ban: "
${FAIL2BAN} reload
RETVAL=$?
echo echo
return $RETVAL return $RETVAL
} }
@ -65,29 +70,27 @@ stop() {
# See how we were called. # See how we were called.
case "$1" in case "$1" in
start) start)
status -p ${pidfile} ${prog} >/dev/null 2>&1 && exit 0
start start
;; ;;
stop) stop)
stop stop
;; ;;
status) reload)
getpid reload
if [ -n "$pid" ]; then
echo "Fail2ban (pid $pid) is running..."
$FAIL2BAN status
else
RETVAL=1
echo "Fail2ban is stopped"
fi
;; ;;
restart) restart)
stop stop
start start
;; ;;
*) status)
echo $"Usage: $0 {start|stop|status|restart}" status -p ${pidfile} ${prog}
exit 1 RETVAL=$?
[ $RETVAL = 0 ] && ${FAIL2BAN} status
;; ;;
*)
echo $"Usage: fail2ban {start|stop|restart|reload|status}"
RETVAL=2
esac esac
exit $RETVAL exit $RETVAL