#!/bin/sh
#
-# postfix This shell script takes care of starting and stopping
-# postfix.
+# postfix This shell script takes care of starting and stopping
+# postfix.
#
-# chkconfig: 2345 80 30
+# chkconfig: 345 80 30
#
-# description: Postfix is a Mail Transport Agent, which is the program
+# description: Postfix is a Mail Transport Agent, which is the program \
# that moves mail from one machine to another.
[ -f /etc/sysconfig/postfix ] && . /etc/sysconfig/postfix
# Check that networking is up.
-if is_no "${NETWORKING}"; then
- msg_Network_Down Postfix
- exit 1
+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)
if [ ! -f /var/lock/subsys/postfix ]; then
msg_starting Postfix
busy
- newaliases
- $0 rebuilddb
MSG="`/usr/sbin/postfix start 2>&1`"
- if [ "$?" = "0" ] ; then
- deltext; ok
+ if [ $? -eq 0 ]; then
+ ok
touch /var/lock/subsys/postfix
else
- deltext; fail
+ RETVAL=1
+ fail
echo "$MSG"
fi
else
- msg_Already_Running Postfix
+ msg_already_running Postfix
fi
;;
stop)
# Stop daemons.
- if [ -f /var/lock/subsys/postfix ]; then
- msg_stopping Postfix
+ if [ -f /var/lock/subsys/postfix ]; then
+ msg_stopping Postfix
busy
MSG="`/usr/sbin/postfix stop 2>&1`"
- if [ "$?" = "0" ]; then
- deltext; ok
+ if [ $? -eq 0 ]; then
+ ok
else
- deltext; fail
+ fail
echo "$MSG"
fi
rm -f /var/lock/subsys/postfix
- else
- msg_Not_Running Postfix
- exit 1
+ else
+ msg_not_running Postfix
fi
;;
restart)
$0 stop
$0 start
+ exit $?
;;
- reload)
- /usr/sbin/postfix reload
+ 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)
- for I in access canonical relocated transport virtual; do
- if [ -f /etc/mail/$I ] ; then
+ 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|status|restart|reload|rebuilddb}"
- exit 1
+ msg_usage "$0 {start|stop|restart|reload|force-reload|rebuilddb|status}"
+ exit 3
esac
exit $RETVAL