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