Report abuse

#!/bin/sh
#
# Copyright (c) 2005-2007 Messiah College.
# Edited heavily by James Wigglesworth (PocketSmith) July 2009
# Note: These edits make this init file only good for OUTGOING DKIM signing
#
### BEGIN INIT INFO
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Description: Runs dkimproxy
### END INIT INFO


### BEGIN CONFIGURABLE BITS
DKIMPROXYDIR=/usr/local/dkimproxy
DKIMPROXYUSER=dkim
DKIMPROXYGROUP=dkim
DKIMPROXY_PRIVATE_KEY="/etc/postfix/dkim/private.key"
DKIMPROXY_SELECTOR="mail"
DKIMPROXY_SENDER_MAP="/etc/postfix/dkim/domain.key"
### END CONFIGURABLE BITS


HOSTNAME=`hostname -f`
DKIMPROXY_OUT_ARGS="
  --conf_file=$DKIMPROXY_OUT_CFG"


DKIMPROXY_COMMON_ARGS="--user=$DKIMPROXYUSER --group=$DKIMPROXYGROUP --daemonize --keyfile=$DKIMPROXY_PRIVATE_KEY --selector=$DKIMPROXY_SELECTOR --sender_map=$DKIMPROXY_SENDER_MAP"
DKIMPROXY_OUT_BIN="$DKIMPROXYDIR/bin/dkimproxy.out"


PIDDIR=/var/run
DKIMPROXY_OUT_PID=$PIDDIR/dkimproxy_out.pid


case "$1" in
  start)
    echo -n "Starting outbound DKIM-proxy (dkimproxy.out)..."


    # create directory for pid files if necessary
    test -d $PIDDIR || mkdir -p $PIDDIR || exit 1


    # start the daemon
    $DKIMPROXY_OUT_BIN $DKIMPROXY_COMMON_ARGS --pidfile=$DKIMPROXY_OUT_PID 127.0.0.1:10027 127.0.0.1:10028
#    echo "$DKIMPROXY_OUT_BIN $DKIMPROXY_COMMON_ARGS --pidfile=$DKIMPROXY_OUT_PID 127.0.0.1:10027 127.0.0.1:10028"
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
      echo done.
    else
      echo failed.
      exit $RETVAL
    fi
    ;;


  stop)
    echo -n "Shutting down outbound DKIM-proxy (dkimproxy.out)..."
    if [ -f $DKIMPROXY_OUT_PID ]; then
      kill `cat $DKIMPROXY_OUT_PID` && rm -f $DKIMPROXY_OUT_PID
      RETVAL=$?
      [ $RETVAL -eq 0 ] && echo done. || echo failed.
      exit $RETVAL
    else
      echo not running.
    fi
    ;;


  restart)
    $0 stop && $0 start || exit $?
    ;;


  status)
    echo -n "dkimproxy.out..."
    if [ -f $DKIMPROXY_OUT_PID ]; then
      pid=`cat $DKIMPROXY_OUT_PID`
      if ps -ef |grep -v grep |grep -q "$pid"; then
        echo " running (pid=$pid)"
      else
        echo " stopped (pid=$pid not found)"
      fi
    else
      echo " stopped"
    fi
    ;;


  *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac