]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/sendmail
merge fix for boot-time hang on centos' xen
[FreeBSD/FreeBSD.git] / etc / rc.d / sendmail
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: mail
7 # REQUIRE: LOGIN cleanvar
8 #       we make mail start late, so that things like .forward's are not
9 #       processed until the system is fully operational
10
11 # XXX - Get together with sendmail mantainer to figure out how to
12 #       better handle SENDMAIL_ENABLE and 3rd party MTAs.
13
14 . /etc/rc.subr
15
16 name="sendmail"
17 rcvar=`set_rcvar`
18 required_files="/etc/mail/${name}.cf"
19 start_precmd="sendmail_precmd"
20
21 load_rc_config $name
22 command=${sendmail_program:-/usr/sbin/${name}}
23 pidfile=${sendmail_pidfile:-/var/run/${name}.pid}
24 procname=${sendmail_procname:-/usr/sbin/${name}}
25
26 case ${sendmail_enable} in
27 [Nn][Oo][Nn][Ee])
28         sendmail_enable="NO"
29         sendmail_submit_enable="NO"
30         sendmail_outbound_enable="NO"
31         sendmail_msp_queue_enable="NO"
32         ;;
33 esac
34
35 # If sendmail_enable=yes, don't need submit or outbound daemon
36 if checkyesno sendmail_enable; then
37         sendmail_submit_enable="NO"
38         sendmail_outbound_enable="NO"
39 fi
40
41 # If sendmail_submit_enable=yes, don't need outbound daemon
42 if checkyesno sendmail_submit_enable; then
43         sendmail_outbound_enable="NO"
44 fi
45
46 sendmail_precmd()
47 {
48         # Die if there's pre-8.10 custom configuration file.  This check is
49         # mandatory for smooth upgrade.  See NetBSD PR 10100 for details.
50         #
51         if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
52                 if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
53                         warn \
54     "${name} was not started; you have multiple copies of sendmail.cf."
55                         return 1
56                 fi
57         fi
58
59         # check modifications on /etc/mail/aliases
60         if checkyesno sendmail_rebuild_aliases; then
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         fi
73 }
74
75 run_rc_command "$1"
76
77 required_files=
78
79 if checkyesno sendmail_submit_enable; then
80         name="sendmail_submit"
81         rcvar=`set_rcvar`
82         start_cmd="${command} ${sendmail_submit_flags}"
83         run_rc_command "$1"
84 fi
85
86 if checkyesno sendmail_outbound_enable; then
87         name="sendmail_outbound"
88         rcvar=`set_rcvar`
89         start_cmd="${command} ${sendmail_outbound_flags}"
90         run_rc_command "$1"
91 fi
92
93 name="sendmail_clientmqueue"
94 rcvar="sendmail_msp_queue_enable"
95 start_cmd="${command} ${sendmail_msp_queue_flags}"
96 pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
97 required_files="/etc/mail/submit.cf"
98 run_rc_command "$1"