]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - etc/rc.d/sendmail
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / etc / rc.d / sendmail
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: mail
7 # REQUIRE: LOGIN FILESYSTEMS
8 #       we make mail start late, so that things like .forward's are not
9 #       processed until the system is fully operational
10 # KEYWORD: shutdown
11
12 # XXX - Get together with sendmail mantainer to figure out how to
13 #       better handle SENDMAIL_ENABLE and 3rd party MTAs.
14 #
15 . /etc/rc.subr
16
17 name="sendmail"
18 rcvar="sendmail_enable"
19 required_files="/etc/mail/${name}.cf"
20 start_precmd="sendmail_precmd"
21
22 load_rc_config $name
23 command=${sendmail_program:-/usr/sbin/${name}}
24 pidfile=${sendmail_pidfile:-/var/run/${name}.pid}
25 procname=${sendmail_procname:-/usr/sbin/${name}}
26
27 case ${sendmail_enable} in
28 [Nn][Oo][Nn][Ee])
29         sendmail_enable="NO"
30         sendmail_submit_enable="NO"
31         sendmail_outbound_enable="NO"
32         sendmail_msp_queue_enable="NO"
33         ;;
34 esac
35
36 # If sendmail_enable=yes, don't need submit or outbound daemon
37 if checkyesno sendmail_enable; then
38         sendmail_submit_enable="NO"
39         sendmail_outbound_enable="NO"
40 fi
41
42 # If sendmail_submit_enable=yes, don't need outbound daemon
43 if checkyesno sendmail_submit_enable; then
44         sendmail_outbound_enable="NO"
45 fi
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 checkyesno sendmail_rebuild_aliases; then
62                 if [ -f "/etc/mail/aliases.db" ]; then
63                         if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
64                                 echo \
65                 "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
66                                 /usr/bin/newaliases
67                         fi
68                 else
69                         echo \
70                 "${name}: /etc/mail/aliases.db not present, generating"
71                                 /usr/bin/newaliases
72                 fi
73         fi
74 }
75
76 run_rc_command "$1"
77
78 required_files=
79
80 if checkyesno sendmail_submit_enable; then
81         name="sendmail_submit"
82         rcvar="sendmail_submit_enable"
83         start_cmd="${command} ${sendmail_submit_flags}"
84         run_rc_command "$1"
85 fi
86
87 if checkyesno sendmail_outbound_enable; then
88         name="sendmail_outbound"
89         rcvar="sendmail_outbound_enable"
90         start_cmd="${command} ${sendmail_outbound_flags}"
91         run_rc_command "$1"
92 fi
93
94 name="sendmail_clientmqueue"
95 rcvar="sendmail_msp_queue_enable"
96 start_cmd="${command} ${sendmail_msp_queue_flags}"
97 pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
98 required_files="/etc/mail/submit.cf"
99 run_rc_command "$1"