sendmail revision 103264
1285163Sdim#!/bin/sh 2285163Sdim# 3285163Sdim# $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $ 4285163Sdim# $FreeBSD: head/etc/rc.d/sendmail 103264 2002-09-12 17:31:09Z gordon $ 5285163Sdim# 6285163Sdim 7285163Sdim# PROVIDE: mail 8285163Sdim# REQUIRE: LOGIN 9285163Sdim# KEYWORD: FreeBSD NetBSD 10285163Sdim# we make mail start late, so that things like .forward's are not 11341825Sdim# processed until the system is fully operational 12285163Sdim 13285163Sdim# XXX - Get together with sendmail mantainer to figure out how to 14285163Sdim# better handle SENDMAIL_ENABLE and 3rd party MTAs. 15285163Sdim# 16285163Sdim. /etc/rc.subr 17285163Sdim 18285163Sdimname="sendmail" 19327952Sdimrcvar=`set_rcvar` 20285163Sdimrequired_files="/etc/mail/${name}.cf" 21285163Sdim 22309124Sdimcase ${OSTYPE} in 23285163SdimFreeBSD) 24285163Sdim command=${sendmail_program:-/usr/sbin/sendmail} 25309124Sdim pidfile=${sendmail_pidfile:-/var/run/sendmail.pid} 26309124Sdim 27309124Sdim load_rc_config $name 28309124Sdim 29309124Sdim case ${sendmail_enable} in 30309124Sdim [Nn][Oo][Nn][Ee]) 31285163Sdim sendmail_enable="NO" 32285163Sdim sendmail_submit_enable="NO" 33285163Sdim sendmail_outbound_enable="NO" 34285163Sdim sendmail_msp_queue_enable="NO" 35285163Sdim ;; 36285163Sdim esac 37309124Sdim ;; 38309124SdimNetBSD) 39309124Sdim command="/usr/sbin/${name}" 40285163Sdim pidfile="/var/run/${name}.pid" 41285163Sdim start_precmd="sendmail_precmd" 42285163Sdim 43285163Sdim load_rc_config $name 44285163Sdim ;; 45285163Sdimesac 46285163Sdim 47309124Sdimsendmail_precmd() 48309124Sdim{ 49314564Sdim # Die if there's pre-8.10 custom configuration file. This check is 50309124Sdim # mandatory for smooth upgrade. See NetBSD PR 10100 for details. 51309124Sdim # 52309124Sdim if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then 53285163Sdim if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then 54285163Sdim warn \ 55309124Sdim "${name} was not started; you have multiple copies of sendmail.cf." 56285163Sdim return 1 57285163Sdim 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 ${OSTYPE} in 87FreeBSD) 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 ;; 111esac 112