#!/bin/sh # # dkfilter This shell script takes care of starting and stopping # dkfilter.in and/or dkfilter.out. # # chkconfig: 345 80 30 # # description: dkfilter is an SMTP-proxy designed for Postfix. \ # It implements DomainKeys message signing and verification. # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # Get service config [ -f /etc/sysconfig/dkfilter ] && . /etc/sysconfig/dkfilter # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down dkfilter exit 1 fi else exit 0 fi start() { if [ $START_INBOUND = "yes" ]; then # Check if the service is already running? if [ ! -f /var/lock/subsys/dkfilter.in ]; then msg_starting dkfilter.in busy MSG="`/usr/bin/dkfilter.in --user=dkfilter --group=dkfilter --pidfile=/var/run/dkfilter.in.pid --daemonize --hostname=$HOSTNAME $INBOUND_IN $INBOUND_OUT 2>&1`" if [ $? -eq 0 ]; then ok touch /var/lock/subsys/dkfilter.in else RETVAL=1 fail echo "$MSG" fi else msg_already_running dkfilter.in fi fi if [ $START_OUTBOUND = "yes" ]; then # Check if the service is already running? if [ ! -f /var/lock/subsys/dkfilter.out ]; then msg_starting dkfilter.out busy MSG="`/usr/bin/dkfilter.out --user=dkfilter --group=dkfilter --pidfile=/var/run/dkfilter.out.pid --daemonize --configfile /etc/dkfilter/dkfilter.out.conf --headers $OUTBOUND_IN $INBOUND_OUT 2>&1`" if [ $? -eq 0 ]; then ok touch /var/lock/subsys/dkfilter.out else RETVAL=1 fail echo "$MSG" fi else msg_already_running dkfilter.out fi fi } stop() { # Stop daemons. if [ $START_INBOUND = "yes" ]; then if [ -f /var/lock/subsys/dkfilter.in ]; then msg_stopping dkfilter.in busy start-stop-daemon --stop --quiet --pidfile /var/run/dkfilter.in.pid && ok || fail rm -f /var/run/dkfilter.in.pid rm -f /var/lock/subsys/dkfilter.in else msg_not_running dkfilter.in fi fi if [ $START_OUTBOUND = "yes" ]; then if [ -f /var/lock/subsys/dkfilter.out ]; then msg_stopping dkfilter.out busy start-stop-daemon --stop --quiet --pidfile /var/run/dkfilter.out.pid && ok || fail rm -f /var/run/dkfilter.out.pid rm -f /var/lock/subsys/dkfilter.out else msg_not_running dkfilter.out fi fi } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status dkfilter.in RETVAL=$? status dkfilter.out RET=$? [ $RET -ne 0 ] && RETVAL=$RET ;; *) msg_usage "$0 {start|stop|restart|status}" exit 3 esac exit $RETVAL