xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-networking/recipes-daemons/postfix/files/postfix (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun### BEGIN INIT INFO
3*4882a593Smuzhiyun# Provides: postfix MTA
4*4882a593Smuzhiyun# Default-Start: 2345
5*4882a593Smuzhiyun# Default-Stop: 016
6*4882a593Smuzhiyun# Short-Description: start and stop postfix
7*4882a593Smuzhiyun# Description: Postfix is a Mail Transport Agent, which is the program
8*4882a593Smuzhiyun#              that moves mail from one machine to another.
9*4882a593Smuzhiyun### END INIT INFO
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunsuccess() {
12*4882a593Smuzhiyun        echo " Successful"
13*4882a593Smuzhiyun        exit 0
14*4882a593Smuzhiyun}
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunfail() {
17*4882a593Smuzhiyun        echo " Failed"
18*4882a593Smuzhiyun        exit 1
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun}
21*4882a593Smuzhiyun
22*4882a593Smuzhiyuncheck_return () {
23*4882a593Smuzhiyun        local ret="$1"
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun        if [ "$ret" = "0" ]; then
26*4882a593Smuzhiyun          success
27*4882a593Smuzhiyun        else
28*4882a593Smuzhiyun          fail
29*4882a593Smuzhiyun        fi
30*4882a593Smuzhiyun}
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunPIDFile=/var/spool/postfix/pid/master.pid
33*4882a593Smuzhiyuncase "$1" in
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun        start)
36*4882a593Smuzhiyun        echo -n "Starting Postfix..."
37*4882a593Smuzhiyun        if [ ! -e /etc/aliases.db ]; then
38*4882a593Smuzhiyun          # The alias database is necessary for postfix to work correctly.
39*4882a593Smuzhiyun          echo "Creating aliases database ..."
40*4882a593Smuzhiyun          newaliases
41*4882a593Smuzhiyun        fi
42*4882a593Smuzhiyun        if ! postfix status >/dev/null 2>&1; then
43*4882a593Smuzhiyun          /usr/sbin/check_hostname.sh
44*4882a593Smuzhiyun          postfix start
45*4882a593Smuzhiyun          check_return $?
46*4882a593Smuzhiyun        else
47*4882a593Smuzhiyun          success
48*4882a593Smuzhiyun        fi
49*4882a593Smuzhiyun        ;;
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun        stop)
52*4882a593Smuzhiyun        echo -n  "Stopping Postfix..."
53*4882a593Smuzhiyun        if postfix status >/dev/null 2>&1; then
54*4882a593Smuzhiyun          postfix stop
55*4882a593Smuzhiyun          check_return $?
56*4882a593Smuzhiyun        else
57*4882a593Smuzhiyun          success
58*4882a593Smuzhiyun        fi
59*4882a593Smuzhiyun        ;;
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun        reload)
62*4882a593Smuzhiyun        echo -n "Reloading Postfix..."
63*4882a593Smuzhiyun        if postfix status >/dev/null 2>&1; then
64*4882a593Smuzhiyun          postfix reload
65*4882a593Smuzhiyun          check_return $?
66*4882a593Smuzhiyun        else
67*4882a593Smuzhiyun          postfix start
68*4882a593Smuzhiyun          check_return $?
69*4882a593Smuzhiyun        fi
70*4882a593Smuzhiyun        ;;
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun        restart)
73*4882a593Smuzhiyun        $0 stop
74*4882a593Smuzhiyun        sleep 1
75*4882a593Smuzhiyun        $0 start
76*4882a593Smuzhiyun        ;;
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun        status)
79*4882a593Smuzhiyun        if postfix status >/dev/null 2>&1; then
80*4882a593Smuzhiyun          pid=`sed -e 's/\s//g' $PIDFile`
81*4882a593Smuzhiyun          echo "The Postfix mail system is running (PID: $pid)"
82*4882a593Smuzhiyun          exit 0
83*4882a593Smuzhiyun        else
84*4882a593Smuzhiyun          echo "The Postfix mail system is not running"
85*4882a593Smuzhiyun          exit 1
86*4882a593Smuzhiyun        fi
87*4882a593Smuzhiyun        ;;
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun        *)
90*4882a593Smuzhiyun        echo "Usage: $0 {start|stop|status|reload|restart}"
91*4882a593Smuzhiyun        exit 1
92*4882a593Smuzhiyun        ;;
93*4882a593Smuzhiyunesac
94*4882a593Smuzhiyun
95