sendmail revision 102864
1#!/bin/sh 2# 3# $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $ 4# $FreeBSD: head/etc/rc.d/sendmail 102864 2002-09-02 20:37:03Z gordon $ 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 18name="sendmail" 19rcvar=`set_rcvar` 20required_files="/etc/mail/${name}.cf" 21 22case `${CMD_OSTYPE}` in 23FreeBSD) 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 ;; 38NetBSD) 39 command="/usr/sbin/${name}" 40 pidfile="/var/run/${name}.pid" 41 start_precmd="sendmail_precmd" 42 43 load_rc_config $name 44 ;; 45esac 46 47sendmail_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 84run_rc_command "$1" 85 86case `${CMD_OSTYPE}` in 87FreeBSD) 88 required_files= 89 90 # I'd like to use checkyesno here, but for reason, sendmail_enable 91 # get's reset after run_rc_command 92 case ${sendmail_enable} in 93 [Nn][Oo]*) 94 name="sendmail_submit" 95 rcvar=`set_rcvar` 96 start_cmd="${command} ${sendmail_submit_flags}" 97 run_rc_command "$1" 98 ;; 99 esac 100 101 if ! checkyesno sendmail_outbound_enable; then 102 name="sendmail_outbound" 103 rcvar=`set_rcvar` 104 start_cmd="${command} ${sendmail_outbound_flags}" 105 run_rc_command "$1" 106 fi 107 108 name="sendmail_clientmqueue" 109 rcvar="sendmail_msp_queue_enable" 110 start_cmd="${command} ${sendmail_msp_queue_flags}" 111 pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}" 112 required_files="/etc/mail/submit.cf" 113 run_rc_command "$1" 114 ;; 115esac 116