Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 62667cefeb310143039b7e62767c96ec > files > 7

opendkim-2.4.2-5.fc15.i686.rpm

#!/bin/bash
#
# opendkim    Start and stop OpenDKIM.

# chkconfig: - 41 59
# description: OpenDKIM implements the DomainKeys Identified Mail (DKIM)
#              service and a milter-based filter application that can plug
#              in to any milter-aware MTA.
# processname: opendkim
# pidfile: /var/run/opendkim/opendkim.pid

### BEGIN INIT INFO
# Provides: opendkim
# Short-Description: Start and stop OpenDKIM
# Description:	OpenDKIM implements the DomainKeys Identified Mail
#		(DKIM) service and a milter-based filter application
#		that can plug in to any milter-aware MTA.
### END INIT INFO

# OpenDKIM startup script v1.7 for RHEL/CentOS/Fedora
# by Steve Jenkins (SteveJenkins.com) - 09-22-2011
# Based on a script by Andrew Colin Kissa (TopDog) for dkim-milter - 05-28-2009
# - Additional functionality to prevent multiple instances and a reload
#   handler by Chris LaJoie - 01-11-2011
# - Added notification (along with with current PID) if "start" is issued when
#   OpenDKIM is already running - 02-15-2011
# - Added support to generate default keys on start - 08-22-2011
# - Added support for /etc/sysconfig/opendkim override of default init script
#   setup parameters - 09-19-2011
# - Changed default stop priority - 09-19-2011
# - Updated success and warning outputs for default key generation - 09-20-2011
# - Changed default key directory ownership and permissions - 09-22-2011

. /etc/rc.d/init.d/functions

prefix=/usr
exec_prefix=/usr

RETVAL=0
prog="opendkim"

DAEMON=/usr/sbin/$prog
CONF_FILE=/etc/$prog.conf
PID_FILE=/var/run/$prog/$prog.pid
KEYGEN=/usr/bin/opendkim-genkey
DKIM_KEYDIR=/etc/$prog/keys
DKIM_SELECTOR=default
AUTOCREATE_DKIM_KEYS=yes

if [ -f /etc/sysconfig/opendkim ]; then
    . /etc/sysconfig/opendkim
fi

do_dkim_keygen() {
	if [ ! -s $DKIM_KEYDIR/$DKIM_SELECTOR.private ]; then
		echo -n $"Generating default DKIM keys: "
		if [ "x`hostname --domain`" = "x" ]; then
			echo_warning
			echo
			echo $"Cannot determine host's domain name, so skipping default key generation."
		else
			mkdir -p $DKIM_KEYDIR
                        $KEYGEN -D $DKIM_KEYDIR -s $DKIM_SELECTOR -d `hostname --domain`
                        chown root:$prog $DKIM_KEYDIR
			chown $prog:$prog $DKIM_KEYDIR/$DKIM_SELECTOR.{private,txt}
                        chmod 600 $DKIM_KEYDIR/$DKIM_SELECTOR.private
                        chmod 644 $DKIM_KEYDIR/$DKIM_SELECTOR.txt
			echo_success
			echo
	                echo Default DKIM keys for `hostname --domain` created in $DKIM_KEYDIR.
                fi
	fi
}

start() {
	# Create keys if necessary
	if [ "x${AUTOCREATE_DKIM_KEYS}" != xNO ]; then
		do_dkim_keygen
	fi

	echo -n $"Starting OpenDKIM Milter: "
	if [ -f $PID_FILE ]; then
		PID=`cat $PID_FILE`
		echo OpenDKIM already running as pid $PID
	        exit 2;
	else
		daemon $DAEMON -x $CONF_FILE -P $PID_FILE
		RETVAL=$?
		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/opendkim
		echo
		return $RETVAL
	fi
}

stop() {
	echo -n $"Stopping OpenDKIM Milter: "
	killproc -p $PID_FILE opendkim
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/opendkim
	return $RETVAL
}

restart() {
	stop
	start
}

reload() {
	echo -n $"Reloading OpenDKIM Milter configuration: "
	killproc -p $PID_FILE opendkim -SIGUSR1
	RETVAL=$?
	echo
	return $RETVAL
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  reload)
	reload
	;;
  restart)
	restart
	;;
   status)
	status -p $PID_FILE opendkim
	;;
  condrestart)
	[ -f /var/lock/subsys/opendkim ] && restart || :
	;;
  *)
	echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
	exit 1
esac

exit $?