95 lines
1.9 KiB
Bash
95 lines
1.9 KiB
Bash
#!/bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: postfix MTA
|
|
# Default-Start: 2345
|
|
# Default-Stop: 016
|
|
# 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
|
|
|
|
success() {
|
|
echo " Successful"
|
|
exit 0
|
|
}
|
|
|
|
fail() {
|
|
echo " Failed"
|
|
exit 1
|
|
|
|
}
|
|
|
|
check_return () {
|
|
local ret="$1"
|
|
|
|
if [ "$ret" = "0" ]; then
|
|
success
|
|
else
|
|
fail
|
|
fi
|
|
}
|
|
|
|
PIDFile=/var/spool/postfix/pid/master.pid
|
|
case "$1" in
|
|
|
|
start)
|
|
echo -n "Starting Postfix..."
|
|
if [ ! -e /etc/aliases.db ]; then
|
|
# The alias database is necessary for postfix to work correctly.
|
|
echo "Creating aliases database ..."
|
|
newaliases
|
|
fi
|
|
if ! postfix status >/dev/null 2>&1; then
|
|
/usr/sbin/check_hostname.sh
|
|
postfix start
|
|
check_return $?
|
|
else
|
|
success
|
|
fi
|
|
;;
|
|
|
|
stop)
|
|
echo -n "Stopping Postfix..."
|
|
if postfix status >/dev/null 2>&1; then
|
|
postfix stop
|
|
check_return $?
|
|
else
|
|
success
|
|
fi
|
|
;;
|
|
|
|
reload)
|
|
echo -n "Reloading Postfix..."
|
|
if postfix status >/dev/null 2>&1; then
|
|
postfix reload
|
|
check_return $?
|
|
else
|
|
postfix start
|
|
check_return $?
|
|
fi
|
|
;;
|
|
|
|
restart)
|
|
$0 stop
|
|
sleep 1
|
|
$0 start
|
|
;;
|
|
|
|
status)
|
|
if postfix status >/dev/null 2>&1; then
|
|
pid=`sed -e 's/\s//g' $PIDFile`
|
|
echo "The Postfix mail system is running (PID: $pid)"
|
|
exit 0
|
|
else
|
|
echo "The Postfix mail system is not running"
|
|
exit 1
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 {start|stop|status|reload|restart}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|