X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=postfix.init;h=c44be2f67004641c112efc5927f2727d7c4c410d;hb=31613c0552a91b556c44bd05860037ea1472bf16;hp=c1671d2dd3d5a14a23876e96b05e190d1ebb6b61;hpb=563bd3a043ba9dbb6db8762613a4dc04b42131ac;p=packages%2Fpostfix.git diff --git a/postfix.init b/postfix.init index c1671d2..c44be2f 100644 --- a/postfix.init +++ b/postfix.init @@ -1,11 +1,11 @@ #!/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 20 # -# 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. @@ -19,59 +19,123 @@ [ -f /etc/sysconfig/postfix ] && . /etc/sysconfig/postfix # Check that networking is up. -[ "${NETWORKING}" = "no" ] && echo "Error: Networking is down"; exit 0 +networking_check() { + 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 +} +start() { + if [ -f /var/lock/subsys/postfix ]; then + msg_already_running "Postfix" + return + fi -# See how we were called. -case "$1" in - start) - # Check if the service is already running? + local msg + msg_starting "Postfix" + busy + _daemon_set_ulimits + msg=$(nice -n ${SERVICE_RUN_NICE_LEVEL:-${DEFAULT_SERVICE_RUN_NICE_LEVEL:-0}} /usr/sbin/postfix start 2>&1) + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + ok + touch /var/lock/subsys/postfix + else + fail + echo >&2 "$msg" + fi +} + +stop() { if [ ! -f /var/lock/subsys/postfix ]; then - show Starting postfix - busy - newaliases - $0 rebuilddb - if /usr/sbin/postfix start 2>/dev/null; then - deltext; ok - else - deltext;fail - fi + msg_not_running "Postfix" + return + fi + + local msg + msg_stopping "Postfix" + busy + msg=$(/usr/sbin/postfix stop 2>&1) + if [ $? -eq 0 ]; then + ok else - echo "postfix already is running" + fail + echo >&2 "$msg" fi - touch /var/lock/subsys/postfix - ;; - stop) - # Stop daemons. - show "Shutting down postfix: " + rm -f /var/lock/subsys/postfix >/dev/null 2>&1 +} + +reload() { + if [ ! -f /var/lock/subsys/postfix ]; then + msg_not_running "Postfix" + RETVAL=7 + return + fi + + local msg + msg_reloading "Postfix" busy - if /usr/sbin/postfix stop 2>/dev/null; then - deltext; ok + msg=$(/usr/sbin/postfix reload 2>&1) + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + ok else - deltext; fail + fail + echo >&2 "$msg" + RETVAL=7 fi - rm -f /var/lock/subsys/postfix +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + networking_check + start ;; - restart) - $0 stop - $0 start + stop) + stop ;; - reload) - /usr/sbin/postfix reload + restart) + networking_check + stop + start ;; - status) - status postfix + reload|force-reload) + networking_check + reload ;; rebuilddb) - for I in access canonical relocated transport virtual; do - if [ -f /etc/mail/$I ] ; then - /usr/sbin/postmap hash:/etc/mail/$I < /etc/mail/$I + standard_db="access canonical relocated transport virtual" + extra_db=$(ls -1 /etc/mail/*.db 2> /dev/null | grep -Ev '/(access|canonical|relocated|transport|virtual|aliases)\.db$') + + echo -n "Rebuilding databases: " + for base in $standard_db $extra_db; do + db=$(basename "$base" .db) + + if [ -f /etc/mail/$db ]; then + echo -n "$db " + /usr/sbin/postmap hash:/etc/mail/$db < /etc/mail/$db fi done - ;; + echo "...DONE" + + echo -n "Rebuilding aliases database" + /usr/bin/newaliases + echo "...DONE" + ;; + status) + status master + exit $? + ;; *) - echo "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 0 +exit $RETVAL