#!/bin/sh # # Slackware init script for milter-greylist # Copyright 2018 Dave Woodfall # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. BIN="milter-greylist" SOCK="/var/milter-greylist/milter-greylist.sock" start() { if [ -e "$SOCK" ]; then PID=$(pgrep -x $BIN) if [ -n "$PID" ]; then printf "%s\n" "$BIN is already running with pid $PID" exit 1 else printf "%s\n" "Removing stale socket..." rm -vf "$SOCK" fi fi printf "%s\n" "Starting $BIN" $BIN sleep 2 PID=$(pgrep -x $BIN) if [ -n "$PID" ]; then printf "%s\n" "$BIN is running with pid $PID" fi } stop() { printf "%s\n" "Stopping $BIN" pkill -x $BIN sleep 2 printf "%s\n" "Removing socket..." rm -vf "$SOCK" } status() { PID=$(pgrep -x $BIN) if [ -n "$PID" ]; then printf "%s\n" "$BIN is running with pid $PID" else printf "%s\n" "$BIN is not running" fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 3 # allow some time to dump the db start ;; status) status ;; *) echo Usage: $0 "{start|stop|restart|status}" exit 1 ;; esac