#!/bin/sh # # postfix This shell script takes care of starting and stopping # postfix. # # chkconfig: 345 80 30 # # description: Postfix is a Mail Transport Agent, which is the program \ # that moves mail from one machine to another. # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # Get service config [ -f /etc/sysconfig/postfix ] && . /etc/sysconfig/postfix # 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 Postfix exit 1 fi else exit 0 fi RETVAL=0 # See how we were called. case "$1" in start) # Check if the service is already running? if [ ! -f /var/lock/subsys/postfix ]; then msg_starting Postfix busy MSG="`/usr/sbin/postfix start 2>&1`" if [ $? -eq 0 ]; then ok touch /var/lock/subsys/postfix else RETVAL=1 fail echo "$MSG" fi else msg_already_running Postfix fi ;; stop) # Stop daemons. if [ -f /var/lock/subsys/postfix ]; then msg_stopping Postfix busy MSG="`/usr/sbin/postfix stop 2>&1`" if [ $? -eq 0 ]; then ok else fail echo "$MSG" fi rm -f /var/lock/subsys/postfix else msg_not_running Postfix fi ;; restart) $0 stop $0 start exit $? ;; reload|force-reload) if [ -f /var/lock/subsys/postfix ]; then msg_reloading Postfix daemon /usr/sbin/postfix reload RETVAL=$? [ $RETVAL -ne 0 ] && RETVAL=7 else msg_not_running Postfix exit 7 fi ;; status) status master exit $? ;; rebuilddb) standard_db="access canonical relocated transport virtual" extra_db=$(ls -1 /etc/mail/*.db 2> /dev/null | grep -v aliases.db | sed -e 's#.db$##') for base in $standard_db $extra_db; do I=$(basename "$base") if [ -f /etc/mail/$I ]; then /usr/sbin/postmap hash:/etc/mail/$I < /etc/mail/$I fi done /usr/bin/newaliases ;; *) msg_usage "$0 {start|stop|restart|reload|force-reload|rebuilddb|status}" exit 3 esac exit $RETVAL