lkundrak / rpms / sendmail

Forked from rpms/sendmail 4 years ago
Clone
dbcb52c
#!/bin/bash
dbcb52c
#
dbcb52c
# sendmail      This shell script takes care of starting and stopping
dbcb52c
#               sendmail.
dbcb52c
#
dbcb52c
# chkconfig: 2345 80 30
dbcb52c
# description: Sendmail is a Mail Transport Agent, which is the program \
dbcb52c
#              that moves mail from one machine to another.
dbcb52c
# processname: sendmail
dbcb52c
# config: /etc/mail/sendmail.cf
dbcb52c
# pidfile: /var/run/sendmail.pid
dbcb52c
dbcb52c
### BEGIN INIT INFO
dbcb52c
# Provides: sendmail smtpdaemon $mail-transfer-agent
dbcb52c
# Required-Start: $local_fs $network
dbcb52c
# Required-Stop: $local_fs $network
dbcb52c
# Default-Start: 2 3 4 5
dbcb52c
# Default-Stop: 0 1 6
dbcb52c
# Short-Description: start and stop sendmail
dbcb52c
# Description: sendmail is a Mail Transport Agent (MTA)
dbcb52c
### END INIT INFO
dbcb52c
dbcb52c
# Source function library.
dbcb52c
. /etc/rc.d/init.d/functions
dbcb52c
dbcb52c
# Source networking configuration.
dbcb52c
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
dbcb52c
dbcb52c
# Source sendmail configureation.
dbcb52c
if [ -f /etc/sysconfig/sendmail ]; then
dbcb52c
    . /etc/sysconfig/sendmail
dbcb52c
else
dbcb52c
    DAEMON=no
dbcb52c
    QUEUE=1h
dbcb52c
fi
dbcb52c
[ -z "$SMQUEUE" ] && SMQUEUE="$QUEUE"
dbcb52c
[ -z "$SMQUEUE" ] && SMQUEUE=1h
dbcb52c
dbcb52c
# Check that we're a privileged user
dbcb52c
[ `id -u` = 0 ] || exit 4
dbcb52c
dbcb52c
# Check that networking is up.
dbcb52c
[ "${NETWORKING}" = "no" ] && exit 1
dbcb52c
dbcb52c
[ -x /usr/sbin/sendmail ] || exit 5
dbcb52c
dbcb52c
prog="sendmail"
dbcb52c
dbcb52c
updateconf() {
dbcb52c
    /etc/mail/make > /dev/null 2>&1
dbcb52c
    if [ $? -eq 15 ]; then
dbcb52c
	echo -n $"Package sendmail-cf is required to update configuration."
dbcb52c
	warning
dbcb52c
	echo
dbcb52c
    fi
dbcb52c
    /etc/mail/make aliases > /dev/null 2>&1
dbcb52c
}
dbcb52c
dbcb52c
start() {
dbcb52c
    # Start daemons.
dbcb52c
    ret=0
dbcb52c
    updateconf
dbcb52c
    echo -n $"Starting $prog: "
dbcb52c
    daemon /usr/sbin/sendmail $([ "x$DAEMON" = xyes ] && echo -bd) \
dbcb52c
	$([ -n "$QUEUE" ] && echo -q$QUEUE) $SENDMAIL_OPTARG
dbcb52c
    RETVAL=$?
dbcb52c
    echo
dbcb52c
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail
dbcb52c
    let ret+=$RETVAL
dbcb52c
dbcb52c
    if [ ! -f /var/run/sm-client.pid ]; then
dbcb52c
	echo -n $"Starting sm-client: "
dbcb52c
	touch /var/run/sm-client.pid
dbcb52c
	chown smmsp:smmsp /var/run/sm-client.pid
dbcb52c
	if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
dbcb52c
	    /sbin/restorecon /var/run/sm-client.pid
dbcb52c
	fi
dbcb52c
	daemon --check sm-client /usr/sbin/sendmail -L sm-msp-queue -Ac \
dbcb52c
	    -q$SMQUEUE $SENDMAIL_OPTARG
dbcb52c
	RETVAL=$?
dbcb52c
	echo
dbcb52c
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/sm-client
dbcb52c
	let ret+=$RETVAL
dbcb52c
    fi
dbcb52c
dbcb52c
    [ $ret -eq 0 ] && return 0 || return 1
dbcb52c
}
dbcb52c
dbcb52c
stop() {
dbcb52c
    # Stop daemons.
dbcb52c
    if [ -f /var/run/sm-client.pid ]; then
dbcb52c
	echo -n $"Shutting down sm-client: "
dbcb52c
	killproc sm-client
dbcb52c
	RETVAL=$?
dbcb52c
	echo
dbcb52c
	[ $RETVAL -eq 0 ] && rm -f /var/run/sm-client.pid
dbcb52c
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sm-client
dbcb52c
    fi
dbcb52c
    echo -n $"Shutting down $prog: "
dbcb52c
    killproc sendmail
dbcb52c
    RETVAL=$?
dbcb52c
    echo
dbcb52c
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail
dbcb52c
    return $RETVAL
dbcb52c
}
dbcb52c
dbcb52c
status -p /var/run/sendmail.pid >/dev/null || status -p /var/run/sm-client.pid >/dev/null
dbcb52c
running=$?
dbcb52c
dbcb52c
# See how we were called.
dbcb52c
case "$1" in
dbcb52c
    start)
dbcb52c
	[ $running -eq 0 ] && exit 0
dbcb52c
	start
dbcb52c
	RETVAL=$?
dbcb52c
	;;
dbcb52c
    stop)
dbcb52c
	[ $running -eq 0 ] || exit 0
dbcb52c
	stop
dbcb52c
	RETVAL=$?
dbcb52c
	;;
dbcb52c
    restart|force-reload)
dbcb52c
	stop
dbcb52c
	start
dbcb52c
	RETVAL=$?
dbcb52c
	;;
dbcb52c
    condrestart|try-restart)
dbcb52c
	[ $running -eq 0 ] || exit 0
dbcb52c
	stop
dbcb52c
	start
dbcb52c
	RETVAL=$?
dbcb52c
	;;
dbcb52c
    status)
dbcb52c
	echo -n sendmail; status -p /var/run/sendmail.pid -l sendmail
dbcb52c
	RETVAL=$?
dbcb52c
	echo -n sm-client; status -p /var/run/sm-client.pid -l sm-client
dbcb52c
	[ $RETVAL -eq 0 ] && RETVAL=$?
dbcb52c
	;;
dbcb52c
    *)
dbcb52c
	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
dbcb52c
	RETVAL=2
dbcb52c
esac
dbcb52c
dbcb52c
exit $RETVAL