Blame | Last modification | View Log | RSS feed
#!/bin/bash## postfix Postfix Mail Transfer Agent## chkconfig: 2345 80 30# description: Postfix is a Mail Transport Agent, which is the program \# that moves mail from one machine to another.# processname: master# pidfile: /var/spool/postfix/pid/master.pid# config: /etc/postfix/main.cf# config: /etc/postfix/master.cf## Based on startup script from Simon J Mudd <sjmudd@pobox.com># 25/02/99: Mostly s/sendmail/postfix/g by John A. Martin <jam@jamux.com># 23/11/00: Changes & suggestions by Ajay Ramaswamy <ajayr@bigfoot.com># 20/01/01: Changes to fall in line with RedHat 7.0 style# 23/02/01: Fix a few untidy problems with help from Daniel Roesen.### BEGIN INIT INFO# Provides: postfix MTA# Required-Start: $local_fs $network $remote_fs# Required-Stop: $local_fs $network $remote_fs# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: start and stop postfix# Description: Postfix is a Mail Transport Agent, which is the program that# moves mail from one machine to another.### END INIT INFO# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/networkRETVAL=0prog="postfix"lockfile=/var/lock/subsys/$progpidfile=/var/spool/postfix/pid/master.pidALIASESDB_STAMP=/var/lib/misc/postfix.aliasesdb-stamp# Script to update chroot environmentCHROOT_UPDATE=/etc/postfix/chroot-updatestatus -p $pidfile -l $(basename $lockfile) -b /usr/libexec/postfix/master master >/dev/null 2>&1running=$?conf_check() {[ -x /usr/sbin/postfix ] || exit 5[ -d /etc/postfix ] || exit 6[ -d /var/spool/postfix ] || exit 5}make_aliasesdb() {if [ "$(/usr/sbin/postconf -h alias_database)" == "hash:/etc/aliases" ]then# /etc/aliases.db may be used by other MTA, make sure nothing# has touched it since our last newaliases call[ /etc/aliases -nt /etc/aliases.db ] ||[ "$ALIASESDB_STAMP" -nt /etc/aliases.db ] ||[ "$ALIASESDB_STAMP" -ot /etc/aliases.db ] || return/usr/bin/newaliasestouch -r /etc/aliases.db "$ALIASESDB_STAMP"else/usr/bin/newaliasesfi}start() {[ "$EUID" != "0" ] && exit 4# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 1conf_check# Start daemons.echo -n $"Starting postfix: "make_aliasesdb >/dev/null 2>&1[ -x $CHROOT_UPDATE ] && $CHROOT_UPDATE/usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start"RETVAL=$?[ $RETVAL -eq 0 ] && touch $lockfileechoreturn $RETVAL}stop() {[ "$EUID" != "0" ] && exit 4conf_check# Stop daemons.echo -n $"Shutting down postfix: "/usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop"RETVAL=$?[ $RETVAL -eq 0 ] && rm -f $lockfile $pidfileechoreturn $RETVAL}reload() {conf_checkecho -n $"Reloading postfix: "[ -x $CHROOT_UPDATE ] && $CHROOT_UPDATE/usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload"RETVAL=$?echoreturn $RETVAL}abort() {conf_check/usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort"return $?}flush() {conf_check/usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush"return $?}check() {conf_check/usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check"return $?}# See how we were called.case "$1" instart)[ $running -eq 0 ] && exit 0start;;stop)[ $running -eq 0 ] || exit 0stop;;restart|force-reload)stopstart;;reload)[ $running -eq 0 ] || exit 7reload;;abort)abort;;flush)flush;;check)check;;status)status -p $pidfile -l $(basename $lockfile) -b /usr/libexec/postfix/master master;;condrestart)[ $running -eq 0 ] || exit 0stopstart;;*)echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}"exit 2esacexit $?