#!/usr/bin/bash -e # # fail2ban This init.d script is used to start fail2ban. # (C) by Hanno Wagner , 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