1#!/bin/sh 2 3# 4# Copyright (c) 2002 Gregory Neil Shapiro. All Rights Reserved. 5# Copyright (c) 2000, 2002 The FreeBSD Project 6# All rights reserved. 7# 8# Redistribution and use in source and binary forms, with or without 9# modification, are permitted provided that the following conditions 10# are met: 11# 1. Redistributions of source code must retain the above copyright 12# notice, this list of conditions and the following disclaimer. 13# 2. Redistributions in binary form must reproduce the above copyright 14# notice, this list of conditions and the following disclaimer in the 15# documentation and/or other materials provided with the distribution. 16# 17# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27# SUCH DAMAGE. 28# 29# $FreeBSD: src/etc/rc.sendmail,v 1.3.2.1 2002/04/24 17:28:08 gshapiro Exp $ 30# $DragonFly: src/etc/rc.sendmail,v 1.2 2003/06/17 04:24:45 dillon Exp $ 31# 32 33# This script is used by /etc/rc at boot time to start sendmail. It 34# is meant to be sendmail specific and not a generic script for all 35# MTAs. It is only called by /etc/rc if the rc.conf mta_start_script is 36# set to /etc/rc.sendmail. This provides the opportunity for other MTAs 37# to provide their own startup script. 38 39# The script is also used by /etc/mail/Makefile to enable the 40# start/stop/restart targets. 41 42# The source for the script can be found in src/etc/sendmail/rc.sendmail. 43 44if [ -r /etc/defaults/rc.conf ]; then 45 . /etc/defaults/rc.conf 46 source_rc_confs 47elif [ -r /etc/rc.conf ]; then 48 . /etc/rc.conf 49fi 50 51# The sendmail binary 52sendmail_program=${sendmail_program:-/usr/sbin/sendmail} 53 54# The pid is used to stop and restart the running daemon(s). 55sendmail_pidfile=${sendmail_pidfile:-/var/run/sendmail.pid} 56sendmail_mspq_pidfile=${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid} 57 58start_mta() 59{ 60 case ${sendmail_enable} in 61 [Nn][Oo][Nn][Ee]) 62 ;; 63 [Yy][Ee][Ss]) 64 echo -n ' sendmail' 65 ${sendmail_program} ${sendmail_flags} 66 ;; 67 *) 68 case ${sendmail_submit_enable} in 69 [Yy][Ee][Ss]) 70 echo -n ' sendmail-submit' 71 ${sendmail_program} ${sendmail_submit_flags} 72 ;; 73 *) 74 case ${sendmail_outbound_enable} in 75 [Yy][Ee][Ss]) 76 echo -n ' sendmail-outbound' 77 ${sendmail_program} ${sendmail_outbound_flags} 78 ;; 79 esac 80 ;; 81 esac 82 ;; 83 esac 84} 85 86stop_mta() 87{ 88 if [ -r ${sendmail_pidfile} ]; then 89 echo -n ' sendmail' 90 kill -TERM `head -1 ${sendmail_pidfile}` 91 else 92 echo "$0: stop-mta: ${sendmail_pidfile} not found" 93 fi 94} 95 96restart_mta() 97{ 98 if [ -r ${sendmail_pidfile} ]; then 99 echo -n ' sendmail' 100 kill -HUP `head -1 ${sendmail_pidfile}` 101 else 102 echo "$0: restart-mta: ${sendmail_pidfile} not found" 103 fi 104} 105 106start_mspq() 107{ 108 case ${sendmail_enable} in 109 [Nn][Oo][Nn][Ee]) 110 ;; 111 *) 112 if [ -r /etc/mail/submit.cf ]; then 113 case ${sendmail_msp_queue_enable} in 114 [Yy][Ee][Ss]) 115 echo -n ' sendmail-clientmqueue' 116 ${sendmail_program} ${sendmail_msp_queue_flags} 117 ;; 118 esac 119 fi 120 ;; 121 esac 122} 123 124stop_mspq() 125{ 126 if [ -r ${sendmail_mspq_pidfile} ]; then 127 echo -n ' sendmail-clientmqueue' 128 kill -TERM `head -1 ${sendmail_mspq_pidfile}` 129 else 130 echo "$0: stop-mspq: ${sendmail_mspq_pidfile} not found" 131 fi 132} 133 134restart_mspq() 135{ 136 if [ -r ${sendmail_mspq_pidfile} ]; then 137 echo -n ' sendmail-clientmqueue' 138 kill -HUP `head -1 ${sendmail_mspq_pidfile}` 139 else 140 echo "$0: restart-mspq: ${sendmail_mspq_pidfile} not found" 141 fi 142} 143 144# If no argument is given, assume we are being called at boot time. 145_action=${1:-start} 146 147case ${_action} in 148start) 149 start_mta 150 start_mspq 151 ;; 152 153stop) 154 stop_mta 155 stop_mspq 156 ;; 157 158restart) 159 restart_mta 160 restart_mspq 161 ;; 162 163start-mta) 164 start_mta 165 ;; 166 167stop-mta) 168 stop_mta 169 ;; 170 171restart-mta) 172 restart_mta 173 ;; 174 175start-mspq) 176 start_mspq 177 ;; 178 179stop-mspq) 180 stop_mspq 181 ;; 182 183restart-mspq) 184 restart_mspq 185 ;; 186 187*) 188 echo "Usage: `basename $0` {start|stop|restart}" >&2 189 echo " `basename $0` {start-mta|stop-mta|restart-mta}" >&2 190 echo " `basename $0` {start-mspq|stop-mspq|restart-mspq}" >&2 191 exit 64 192 ;; 193 194esac 195exit 0 196