rc.sendmail revision 121234
150472Speter#!/bin/sh 238738Sbrian 33161Sache# 43161Sache# Copyright (c) 2002 Gregory Neil Shapiro. All Rights Reserved. 53161Sache# Copyright (c) 2000, 2002 The FreeBSD Project 63161Sache# All rights reserved. 735121Sdes# 819911Sache# Redistribution and use in source and binary forms, with or without 919033Sache# modification, are permitted provided that the following conditions 1035121Sdes# are met: 1135121Sdes# 1. Redistributions of source code must retain the above copyright 129249Sache# notice, this list of conditions and the following disclaimer. 1319033Sache# 2. Redistributions in binary form must reproduce the above copyright 1435121Sdes# notice, this list of conditions and the following disclaimer in the 154994Sache# documentation and/or other materials provided with the distribution. 1635121Sdes# 1735121Sdes# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1812391Sache# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1912392Sache# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2019033Sache# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 2119033Sache# 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: head/etc/rc.sendmail 121234 2003-10-19 00:31:50Z gshapiro $ 30# 31 32# This script is used by /etc/rc at boot time to start sendmail. It 33# is meant to be sendmail specific and not a generic script for all 34# MTAs. It is only called by /etc/rc if the rc.conf mta_start_script is 35# set to /etc/rc.sendmail. This provides the opportunity for other MTAs 36# to provide their own startup script. 37 38# The script is also used by /etc/mail/Makefile to enable the 39# start/stop/restart targets. 40 41# The source for the script can be found in src/etc/sendmail/rc.sendmail. 42 43if [ -r /etc/defaults/rc.conf ]; then 44 . /etc/defaults/rc.conf 45 source_rc_confs 46elif [ -r /etc/rc.conf ]; then 47 . /etc/rc.conf 48fi 49 50# The sendmail binary 51sendmail_program=${sendmail_program:-/usr/sbin/sendmail} 52 53# The pid is used to stop and restart the running daemon(s). 54sendmail_pidfile=${sendmail_pidfile:-/var/run/sendmail.pid} 55sendmail_mspq_pidfile=${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid} 56 57start_mta() 58{ 59 case ${sendmail_enable} in 60 [Nn][Oo][Nn][Ee]) 61 ;; 62 [Yy][Ee][Ss]) 63 echo -n ' sendmail' 64 ${sendmail_program} ${sendmail_flags} 65 ;; 66 *) 67 case ${sendmail_submit_enable} in 68 [Yy][Ee][Ss]) 69 echo -n ' sendmail-submit' 70 ${sendmail_program} ${sendmail_submit_flags} 71 ;; 72 *) 73 case ${sendmail_outbound_enable} in 74 [Yy][Ee][Ss]) 75 echo -n ' sendmail-outbound' 76 ${sendmail_program} ${sendmail_outbound_flags} 77 ;; 78 esac 79 ;; 80 esac 81 ;; 82 esac 83} 84 85stop_mta() 86{ 87 # Check to make sure we are configured to start an MTA 88 case ${sendmail_enable} in 89 [Nn][Oo][Nn][Ee]) 90 return 91 ;; 92 [Yy][Ee][Ss]) 93 ;; 94 *) 95 case ${sendmail_submit_enable} in 96 [Yy][Ee][Ss]) 97 ;; 98 *) 99 case ${sendmail_outbound_enable} in 100 [Yy][Ee][Ss]) 101 ;; 102 *) 103 return 104 ;; 105 esac 106 ;; 107 esac 108 ;; 109 esac 110 111 if [ -r ${sendmail_pidfile} ]; then 112 echo -n ' sendmail' 113 kill -TERM `head -1 ${sendmail_pidfile}` 114 else 115 echo "$0: stop-mta: ${sendmail_pidfile} not found" 116 fi 117} 118 119restart_mta() 120{ 121 # Check to make sure we are configured to start an MTA 122 case ${sendmail_enable} in 123 [Nn][Oo][Nn][Ee]) 124 return 125 ;; 126 [Yy][Ee][Ss]) 127 ;; 128 *) 129 case ${sendmail_submit_enable} in 130 [Yy][Ee][Ss]) 131 ;; 132 *) 133 case ${sendmail_outbound_enable} in 134 [Yy][Ee][Ss]) 135 ;; 136 *) 137 return 138 ;; 139 esac 140 ;; 141 esac 142 ;; 143 esac 144 if [ -r ${sendmail_pidfile} ]; then 145 echo -n ' sendmail' 146 kill -HUP `head -1 ${sendmail_pidfile}` 147 else 148 echo "$0: restart-mta: ${sendmail_pidfile} not found" 149 fi 150} 151 152start_mspq() 153{ 154 case ${sendmail_enable} in 155 [Nn][Oo][Nn][Ee]) 156 ;; 157 *) 158 if [ -r /etc/mail/submit.cf ]; then 159 case ${sendmail_msp_queue_enable} in 160 [Yy][Ee][Ss]) 161 echo -n ' sendmail-clientmqueue' 162 ${sendmail_program} ${sendmail_msp_queue_flags} 163 ;; 164 esac 165 fi 166 ;; 167 esac 168} 169 170stop_mspq() 171{ 172 # Check to make sure we are configured to start an MSP queue runner 173 case ${sendmail_enable} in 174 [Nn][Oo][Nn][Ee]) 175 return 176 ;; 177 *) 178 if [ -r /etc/mail/submit.cf ]; then 179 case ${sendmail_msp_queue_enable} in 180 [Yy][Ee][Ss]) 181 ;; 182 *) 183 return 184 ;; 185 esac 186 fi 187 ;; 188 esac 189 190 if [ -r ${sendmail_mspq_pidfile} ]; then 191 echo -n ' sendmail-clientmqueue' 192 kill -TERM `head -1 ${sendmail_mspq_pidfile}` 193 else 194 echo "$0: stop-mspq: ${sendmail_mspq_pidfile} not found" 195 fi 196} 197 198restart_mspq() 199{ 200 # Check to make sure we are configured to start an MSP queue runner 201 case ${sendmail_enable} in 202 [Nn][Oo][Nn][Ee]) 203 return 204 ;; 205 *) 206 if [ -r /etc/mail/submit.cf ]; then 207 case ${sendmail_msp_queue_enable} in 208 [Yy][Ee][Ss]) 209 ;; 210 *) 211 return 212 ;; 213 esac 214 fi 215 ;; 216 esac 217 218 if [ -r ${sendmail_mspq_pidfile} ]; then 219 echo -n ' sendmail-clientmqueue' 220 kill -HUP `head -1 ${sendmail_mspq_pidfile}` 221 else 222 echo "$0: restart-mspq: ${sendmail_mspq_pidfile} not found" 223 fi 224} 225 226# If no argument is given, assume we are being called at boot time. 227_action=${1:-start} 228 229case ${_action} in 230start) 231 start_mta 232 start_mspq 233 ;; 234 235stop) 236 stop_mta 237 stop_mspq 238 ;; 239 240restart) 241 restart_mta 242 restart_mspq 243 ;; 244 245start-mta) 246 start_mta 247 ;; 248 249stop-mta) 250 stop_mta 251 ;; 252 253restart-mta) 254 restart_mta 255 ;; 256 257start-mspq) 258 start_mspq 259 ;; 260 261stop-mspq) 262 stop_mspq 263 ;; 264 265restart-mspq) 266 restart_mspq 267 ;; 268 269*) 270 echo "usage: `basename $0` {start|stop|restart}" >&2 271 echo " `basename $0` {start-mta|stop-mta|restart-mta}" >&2 272 echo " `basename $0` {start-mspq|stop-mspq|restart-mspq}" >&2 273 exit 64 274 ;; 275 276esac 277exit 0 278