5 kx #!/bin/bash
5 kx #
5 kx # /etc/rc.d/rc.opendkim Start and stop OpenDKIM.
5 kx #
5 kx # OpenDKIM startup script for Slackware 14.1 by Gerardo Zamudio
5 kx # Modified from the script by Steve Jenkins (SteveJenkins.com) - 10-29-2012
5 kx # Based on a script by Andrew Colin Kissa (TopDog) for dkim-milter - 05-28-2009
5 kx #
5 kx
5 kx USER="opendkim"
5 kx PROGRAM=/usr/sbin/opendkim
5 kx CONF_FILE=/etc/opendkim.conf
5 kx PID_FILE=/var/run/opendkim/opendkim.pid
5 kx KEYGEN=/usr/sbin/opendkim-genkey
5 kx DKIM_KEYDIR=/etc/opendkim/keys
5 kx DKIM_SELECTOR=default
5 kx AUTOCREATE_DKIM_KEYS=yes
5 kx
5 kx do_dkim_keygen() {
5 kx if [ ! -s $DKIM_KEYDIR/$DKIM_SELECTOR.private ]; then
5 kx echo -n $"Generating default DKIM keys: "
5 kx if [ "x$(hostname -d)" = "x" ]; then
5 kx echo $"Cannot determine host's domain name, so skipping default key generation."
5 kx else
5 kx mkdir -p $DKIM_KEYDIR
5 kx $KEYGEN -b 2048 -D $DKIM_KEYDIR -s $DKIM_SELECTOR -d "$(hostname -d)"
5 kx chown root:$USER $DKIM_KEYDIR
5 kx chown $USER:$USER $DKIM_KEYDIR/$DKIM_SELECTOR.{private,txt}
5 kx chmod 600 $DKIM_KEYDIR/$DKIM_SELECTOR.private
5 kx chmod 644 $DKIM_KEYDIR/$DKIM_SELECTOR.txt
5 kx echo
5 kx echo Default DKIM keys for "$(hostname -d)" created in $DKIM_KEYDIR.
5 kx fi
5 kx fi
5 kx }
5 kx
5 kx case "$1" in
5 kx start)
5 kx # Create keys if necessary
5 kx if [ "x${AUTOCREATE_DKIM_KEYS}" != xNO ]; then
5 kx do_dkim_keygen
5 kx fi
5 kx
5 kx echo -n $"Starting OpenDKIM Milter... "
5 kx echo
5 kx if [ -f $PID_FILE ]; then
5 kx PID=$(cat $PID_FILE)
5 kx echo OpenDKIM already running as pid "$PID"
5 kx exit 2;
5 kx else
5 kx $PROGRAM -l -x $CONF_FILE -P $PID_FILE
5 kx fi
5 kx ;;
5 kx stop)
5 kx echo -n $"Stopping OpenDKIM Milter... "
5 kx echo
5 kx if [ ! -f $PID_FILE ]; then
5 kx echo OpenDKIM is not running!
5 kx exit 2;
5 kx else
5 kx kill -TERM "$(cat $PID_FILE)" && rm -rf $PID_FILE
5 kx fi
5 kx ;;
5 kx status)
5 kx if [ -f $PID_FILE ]; then
5 kx PID=$(cat $PID_FILE)
5 kx echo OpenDKIM already running as pid "$PID"
5 kx exit 2;
5 kx else
5 kx echo OpenDKIM is not running!
5 kx fi
5 kx ;;
5 kx *)
5 kx echo $"Usage: $0 {start|stop|status|}"
5 kx exit 1
5 kx esac