fail2ban/files/solaris-svc-fail2ban

66 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/bash -e
#
# fail2ban This init.d script is used to start fail2ban.
# (C) by Hanno Wagner <wagner@rince.de>, License is GPL
#set -x
. /lib/svc/share/smf_include.sh
set -e
F2B_CONF="/etc/fail2ban/fail2ban.conf"
if [ -n "$2" ] && [ -f "$F2B_CONF" ]; then
F2B_CONF="$2"
fi
ENV="/usr/bin/env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin:/opt/sfw/bin:/usr/sfw/bin"
# get socket/pid conf and check dir exists
# sock and pid default dirs are currently the same
# mkdir if it doesn't exist
SOCK_FILE=$(sed "/^\#/d" "$F2B_CONF" | grep "socket" | tail -1 | cut -d "=" -f2-)
SOCK_DIR=$(dirname $SOCK_FILE)
if [ -n "$SOCK_DIR" ]; then
if [ ! -d "$SOCK_DIR" ]; then
mkdir "$SOCK_DIR" || exit 1
fi
fi
case $1 in
start)
# remove any lingering sockets
# don't quote the var for the -e test
if [ -n "$SOCK_FILE" ]; then
if [ -e $SOCK_FILE ]; then
rm -f $SOCK_FILE || exit 1
fi
fi
[ -f /etc/fail2ban.conf ] || touch /etc/fail2ban.conf
echo "Starting fail2ban-server with $F2B_CONF"
eval $ENV /usr/local/bin/fail2ban-client start &
;;
stop)
echo "Stopping fail2ban-server with $F2B_CONF"
eval $ENV /usr/local/bin/fail2ban-client stop &
;;
reload | refresh )
echo "Reloading fail2ban-server with $F2B_CONF"
eval $ENV /usr/local/bin/fail2ban-client reload &
;;
restart | force-reload)
echo "Forcing reload of fail2ban-server with $F2B_CONF"
eval $ENV /usr/local/bin/fail2ban-client stop &
sleep 2
eval $ENV /usr/local/bin/fail2ban-client start &
;;
status)
/usr/local/bin/fail2ban-client status &
;;
*)
echo "Usage: /lib/svc/method/svc-fail2ban start|stop|status|refresh|restart|reload|force-reload" >&2
exit 2
;;
esac