]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/sendmail
This commit was generated by cvs2svn to compensate for changes in r120256,
[FreeBSD/FreeBSD.git] / etc / rc.d / sendmail
1 #!/bin/sh
2 #
3 # $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $
4 # $FreeBSD$
5 #
6
7 # PROVIDE: mail
8 # REQUIRE: LOGIN
9 # KEYWORD: FreeBSD NetBSD
10 #       we make mail start late, so that things like .forward's are not
11 #       processed until the system is fully operational
12
13 # XXX - Get together with sendmail mantainer to figure out how to
14 #       better handle SENDMAIL_ENABLE and 3rd party MTAs.
15 #
16 . /etc/rc.subr
17
18 name="sendmail"
19 rcvar=`set_rcvar`
20 required_files="/etc/mail/${name}.cf"
21
22 case ${OSTYPE} in
23 FreeBSD)
24         command=${sendmail_program:-/usr/sbin/sendmail}
25         pidfile=${sendmail_pidfile:-/var/run/sendmail.pid}
26
27         load_rc_config $name
28
29         case ${sendmail_enable} in
30         [Nn][Oo][Nn][Ee])
31                 sendmail_enable="NO"
32                 sendmail_submit_enable="NO"
33                 sendmail_outbound_enable="NO"
34                 sendmail_msp_queue_enable="NO"
35                 ;;
36         esac
37         ;;
38 NetBSD)
39         command="/usr/sbin/${name}"
40         pidfile="/var/run/${name}.pid"
41         start_precmd="sendmail_precmd"
42
43         load_rc_config $name
44         ;;
45 esac
46
47 sendmail_precmd()
48 {
49         # Die if there's pre-8.10 custom configuration file.  This check is
50         # mandatory for smooth upgrade.  See NetBSD PR 10100 for details.
51         #
52         if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
53                 if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
54                         warn \
55     "${name} was not started; you have multiple copies of sendmail.cf."
56                         return 1
57                 fi
58         fi
59
60         # check modifications on /etc/mail/aliases
61         if [ -f "/etc/mail/aliases.db" ]; then
62                 if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
63                         echo \
64             "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
65                         /usr/bin/newaliases
66                 fi
67         else
68                 echo \
69             "${name}: /etc/mail/aliases.db not present, generating"
70                         /usr/bin/newaliases
71         fi
72
73         # check couple of common db files, too
74         for f in genericstable virtusertable domaintable mailertable; do
75                 if [ -r "/etc/mail/$f" -a \
76                     "/etc/mail/$f" -nt "/etc/mail/$f.db" ]; then
77                         echo \
78     "${name}: /etc/mail/$f newer than /etc/mail/$f.db, regenerating"
79                         /usr/sbin/makemap hash /etc/mail/$f < /etc/mail/$f
80                 fi
81         done
82 }
83
84 run_rc_command "$1"
85
86 case ${OSTYPE} in
87 FreeBSD)
88         required_files=
89
90         if ! checkyesno sendmail_enable; then
91                 name="sendmail_submit"
92                 rcvar=`set_rcvar`
93                 start_cmd="${command} ${sendmail_submit_flags}"
94                 run_rc_command "$1"
95         fi
96
97         if ! checkyesno sendmail_outbound_enable; then
98                 name="sendmail_outbound"
99                 rcvar=`set_rcvar`
100                 start_cmd="${command} ${sendmail_outbound_flags}"
101                 run_rc_command "$1"
102         fi
103
104         name="sendmail_clientmqueue"
105         rcvar="sendmail_msp_queue_enable"
106         start_cmd="${command} ${sendmail_msp_queue_flags}"
107         pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
108         required_files="/etc/mail/submit.cf"
109         run_rc_command "$1"
110         ;;
111 esac