186d7f5d3SJohn Marino#!/bin/sh 286d7f5d3SJohn Marino 386d7f5d3SJohn Marino# 486d7f5d3SJohn Marino# Copyright (c) 2002 Gregory Neil Shapiro. All Rights Reserved. 586d7f5d3SJohn Marino# Copyright (c) 2000, 2002 The FreeBSD Project 686d7f5d3SJohn Marino# All rights reserved. 786d7f5d3SJohn Marino# 886d7f5d3SJohn Marino# Redistribution and use in source and binary forms, with or without 986d7f5d3SJohn Marino# modification, are permitted provided that the following conditions 1086d7f5d3SJohn Marino# are met: 1186d7f5d3SJohn Marino# 1. Redistributions of source code must retain the above copyright 1286d7f5d3SJohn Marino# notice, this list of conditions and the following disclaimer. 1386d7f5d3SJohn Marino# 2. Redistributions in binary form must reproduce the above copyright 1486d7f5d3SJohn Marino# notice, this list of conditions and the following disclaimer in the 1586d7f5d3SJohn Marino# documentation and/or other materials provided with the distribution. 1686d7f5d3SJohn Marino# 1786d7f5d3SJohn Marino# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1886d7f5d3SJohn Marino# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1986d7f5d3SJohn Marino# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2086d7f5d3SJohn Marino# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 2186d7f5d3SJohn Marino# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2286d7f5d3SJohn Marino# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2386d7f5d3SJohn Marino# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2486d7f5d3SJohn Marino# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2586d7f5d3SJohn Marino# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2686d7f5d3SJohn Marino# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2786d7f5d3SJohn Marino# SUCH DAMAGE. 2886d7f5d3SJohn Marino# 2986d7f5d3SJohn Marino# $FreeBSD: src/etc/rc.sendmail,v 1.3.2.1 2002/04/24 17:28:08 gshapiro Exp $ 3086d7f5d3SJohn Marino# $DragonFly: src/etc/rc.sendmail,v 1.3 2005/07/25 00:24:31 gshapiro Exp $ 3186d7f5d3SJohn Marino# 3286d7f5d3SJohn Marino 3386d7f5d3SJohn Marino# This script is used by /etc/rc at boot time to start sendmail. It 3486d7f5d3SJohn Marino# is meant to be sendmail specific and not a generic script for all 3586d7f5d3SJohn Marino# MTAs. It is only called by /etc/rc if the rc.conf mta_start_script is 3686d7f5d3SJohn Marino# set to /etc/rc.sendmail. This provides the opportunity for other MTAs 3786d7f5d3SJohn Marino# to provide their own startup script. 3886d7f5d3SJohn Marino 3986d7f5d3SJohn Marino# The script is also used by /etc/mail/Makefile to enable the 4086d7f5d3SJohn Marino# start/stop/restart targets. 4186d7f5d3SJohn Marino 4286d7f5d3SJohn Marino# The source for the script can be found in src/etc/sendmail/rc.sendmail. 4386d7f5d3SJohn Marino 4486d7f5d3SJohn Marinoif [ -r /etc/defaults/rc.conf ]; then 4586d7f5d3SJohn Marino . /etc/defaults/rc.conf 4686d7f5d3SJohn Marino source_rc_confs 4786d7f5d3SJohn Marinoelif [ -r /etc/rc.conf ]; then 4886d7f5d3SJohn Marino . /etc/rc.conf 4986d7f5d3SJohn Marinofi 5086d7f5d3SJohn Marino 5186d7f5d3SJohn Marino# The sendmail binary 5286d7f5d3SJohn Marinosendmail_program=${sendmail_program:-/usr/sbin/sendmail} 5386d7f5d3SJohn Marino 5486d7f5d3SJohn Marino# The pid is used to stop and restart the running daemon(s). 5586d7f5d3SJohn Marinosendmail_pidfile=${sendmail_pidfile:-/var/run/sendmail.pid} 5686d7f5d3SJohn Marinosendmail_mspq_pidfile=${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid} 5786d7f5d3SJohn Marino 5886d7f5d3SJohn Marinostart_mta() 5986d7f5d3SJohn Marino{ 6086d7f5d3SJohn Marino case ${sendmail_enable} in 6186d7f5d3SJohn Marino [Nn][Oo][Nn][Ee]) 6286d7f5d3SJohn Marino ;; 6386d7f5d3SJohn Marino [Yy][Ee][Ss]) 6486d7f5d3SJohn Marino echo -n ' sendmail' 6586d7f5d3SJohn Marino ${sendmail_program} ${sendmail_flags} 6686d7f5d3SJohn Marino ;; 6786d7f5d3SJohn Marino *) 6886d7f5d3SJohn Marino case ${sendmail_submit_enable} in 6986d7f5d3SJohn Marino [Yy][Ee][Ss]) 7086d7f5d3SJohn Marino echo -n ' sendmail-submit' 7186d7f5d3SJohn Marino ${sendmail_program} ${sendmail_submit_flags} 7286d7f5d3SJohn Marino ;; 7386d7f5d3SJohn Marino *) 7486d7f5d3SJohn Marino case ${sendmail_outbound_enable} in 7586d7f5d3SJohn Marino [Yy][Ee][Ss]) 7686d7f5d3SJohn Marino echo -n ' sendmail-outbound' 7786d7f5d3SJohn Marino ${sendmail_program} ${sendmail_outbound_flags} 7886d7f5d3SJohn Marino ;; 7986d7f5d3SJohn Marino esac 8086d7f5d3SJohn Marino ;; 8186d7f5d3SJohn Marino esac 8286d7f5d3SJohn Marino ;; 8386d7f5d3SJohn Marino esac 8486d7f5d3SJohn Marino} 8586d7f5d3SJohn Marino 8686d7f5d3SJohn Marinostop_mta() 8786d7f5d3SJohn Marino{ 8886d7f5d3SJohn Marino # Check to make sure we are configured to start an MTA 8986d7f5d3SJohn Marino case ${sendmail_enable} in 9086d7f5d3SJohn Marino [Nn][Oo][Nn][Ee]) 9186d7f5d3SJohn Marino return 9286d7f5d3SJohn Marino ;; 9386d7f5d3SJohn Marino [Yy][Ee][Ss]) 9486d7f5d3SJohn Marino ;; 9586d7f5d3SJohn Marino *) 9686d7f5d3SJohn Marino case ${sendmail_submit_enable} in 9786d7f5d3SJohn Marino [Yy][Ee][Ss]) 9886d7f5d3SJohn Marino ;; 9986d7f5d3SJohn Marino *) 10086d7f5d3SJohn Marino case ${sendmail_outbound_enable} in 10186d7f5d3SJohn Marino [Yy][Ee][Ss]) 10286d7f5d3SJohn Marino ;; 10386d7f5d3SJohn Marino *) 10486d7f5d3SJohn Marino return 10586d7f5d3SJohn Marino ;; 10686d7f5d3SJohn Marino esac 10786d7f5d3SJohn Marino ;; 10886d7f5d3SJohn Marino esac 10986d7f5d3SJohn Marino ;; 11086d7f5d3SJohn Marino esac 11186d7f5d3SJohn Marino 11286d7f5d3SJohn Marino if [ -r ${sendmail_pidfile} ]; then 11386d7f5d3SJohn Marino echo -n ' sendmail' 11486d7f5d3SJohn Marino kill -TERM `head -1 ${sendmail_pidfile}` 11586d7f5d3SJohn Marino else 11686d7f5d3SJohn Marino echo "$0: stop-mta: ${sendmail_pidfile} not found" 11786d7f5d3SJohn Marino fi 11886d7f5d3SJohn Marino} 11986d7f5d3SJohn Marino 12086d7f5d3SJohn Marinorestart_mta() 12186d7f5d3SJohn Marino{ 12286d7f5d3SJohn Marino # Check to make sure we are configured to start an MTA 12386d7f5d3SJohn Marino case ${sendmail_enable} in 12486d7f5d3SJohn Marino [Nn][Oo][Nn][Ee]) 12586d7f5d3SJohn Marino return 12686d7f5d3SJohn Marino ;; 12786d7f5d3SJohn Marino [Yy][Ee][Ss]) 12886d7f5d3SJohn Marino ;; 12986d7f5d3SJohn Marino *) 13086d7f5d3SJohn Marino case ${sendmail_submit_enable} in 13186d7f5d3SJohn Marino [Yy][Ee][Ss]) 13286d7f5d3SJohn Marino ;; 13386d7f5d3SJohn Marino *) 13486d7f5d3SJohn Marino case ${sendmail_outbound_enable} in 13586d7f5d3SJohn Marino [Yy][Ee][Ss]) 13686d7f5d3SJohn Marino ;; 13786d7f5d3SJohn Marino *) 13886d7f5d3SJohn Marino return 13986d7f5d3SJohn Marino ;; 14086d7f5d3SJohn Marino esac 14186d7f5d3SJohn Marino ;; 14286d7f5d3SJohn Marino esac 14386d7f5d3SJohn Marino ;; 14486d7f5d3SJohn Marino esac 14586d7f5d3SJohn Marino 14686d7f5d3SJohn Marino if [ -r ${sendmail_pidfile} ]; then 14786d7f5d3SJohn Marino echo -n ' sendmail' 14886d7f5d3SJohn Marino kill -HUP `head -1 ${sendmail_pidfile}` 14986d7f5d3SJohn Marino else 15086d7f5d3SJohn Marino echo "$0: restart-mta: ${sendmail_pidfile} not found" 15186d7f5d3SJohn Marino fi 15286d7f5d3SJohn Marino} 15386d7f5d3SJohn Marino 15486d7f5d3SJohn Marinostart_mspq() 15586d7f5d3SJohn Marino{ 15686d7f5d3SJohn Marino case ${sendmail_enable} in 15786d7f5d3SJohn Marino [Nn][Oo][Nn][Ee]) 15886d7f5d3SJohn Marino ;; 15986d7f5d3SJohn Marino *) 16086d7f5d3SJohn Marino if [ -r /etc/mail/submit.cf ]; then 16186d7f5d3SJohn Marino case ${sendmail_msp_queue_enable} in 16286d7f5d3SJohn Marino [Yy][Ee][Ss]) 16386d7f5d3SJohn Marino echo -n ' sendmail-clientmqueue' 16486d7f5d3SJohn Marino ${sendmail_program} ${sendmail_msp_queue_flags} 16586d7f5d3SJohn Marino ;; 16686d7f5d3SJohn Marino esac 16786d7f5d3SJohn Marino fi 16886d7f5d3SJohn Marino ;; 16986d7f5d3SJohn Marino esac 17086d7f5d3SJohn Marino} 17186d7f5d3SJohn Marino 17286d7f5d3SJohn Marinostop_mspq() 17386d7f5d3SJohn Marino{ 17486d7f5d3SJohn Marino # Check to make sure we are configured to start an MSP queue runner 17586d7f5d3SJohn Marino case ${sendmail_enable} in 17686d7f5d3SJohn Marino [Nn][Oo][Nn][Ee]) 17786d7f5d3SJohn Marino return 17886d7f5d3SJohn Marino ;; 17986d7f5d3SJohn Marino *) 18086d7f5d3SJohn Marino if [ -r /etc/mail/submit.cf ]; then 18186d7f5d3SJohn Marino case ${sendmail_msp_queue_enable} in 18286d7f5d3SJohn Marino [Yy][Ee][Ss]) 18386d7f5d3SJohn Marino ;; 18486d7f5d3SJohn Marino *) 18586d7f5d3SJohn Marino return 18686d7f5d3SJohn Marino ;; 18786d7f5d3SJohn Marino esac 18886d7f5d3SJohn Marino fi 18986d7f5d3SJohn Marino ;; 19086d7f5d3SJohn Marino esac 19186d7f5d3SJohn Marino 19286d7f5d3SJohn Marino if [ -r ${sendmail_mspq_pidfile} ]; then 19386d7f5d3SJohn Marino echo -n ' sendmail-clientmqueue' 19486d7f5d3SJohn Marino kill -TERM `head -1 ${sendmail_mspq_pidfile}` 19586d7f5d3SJohn Marino else 19686d7f5d3SJohn Marino echo "$0: stop-mspq: ${sendmail_mspq_pidfile} not found" 19786d7f5d3SJohn Marino fi 19886d7f5d3SJohn Marino} 19986d7f5d3SJohn Marino 20086d7f5d3SJohn Marinorestart_mspq() 20186d7f5d3SJohn Marino{ 20286d7f5d3SJohn Marino # Check to make sure we are configured to start an MSP queue runner 20386d7f5d3SJohn Marino case ${sendmail_enable} in 20486d7f5d3SJohn Marino [Nn][Oo][Nn][Ee]) 20586d7f5d3SJohn Marino return 20686d7f5d3SJohn Marino ;; 20786d7f5d3SJohn Marino *) 20886d7f5d3SJohn Marino if [ -r /etc/mail/submit.cf ]; then 20986d7f5d3SJohn Marino case ${sendmail_msp_queue_enable} in 21086d7f5d3SJohn Marino [Yy][Ee][Ss]) 21186d7f5d3SJohn Marino ;; 21286d7f5d3SJohn Marino *) 21386d7f5d3SJohn Marino return 21486d7f5d3SJohn Marino ;; 21586d7f5d3SJohn Marino esac 21686d7f5d3SJohn Marino fi 21786d7f5d3SJohn Marino ;; 21886d7f5d3SJohn Marino esac 21986d7f5d3SJohn Marino 22086d7f5d3SJohn Marino if [ -r ${sendmail_mspq_pidfile} ]; then 22186d7f5d3SJohn Marino echo -n ' sendmail-clientmqueue' 22286d7f5d3SJohn Marino kill -HUP `head -1 ${sendmail_mspq_pidfile}` 22386d7f5d3SJohn Marino else 22486d7f5d3SJohn Marino echo "$0: restart-mspq: ${sendmail_mspq_pidfile} not found" 22586d7f5d3SJohn Marino fi 22686d7f5d3SJohn Marino} 22786d7f5d3SJohn Marino 22886d7f5d3SJohn Marino# If no argument is given, assume we are being called at boot time. 22986d7f5d3SJohn Marino_action=${1:-start} 23086d7f5d3SJohn Marino 23186d7f5d3SJohn Marinocase ${_action} in 23286d7f5d3SJohn Marinostart) 23386d7f5d3SJohn Marino start_mta 23486d7f5d3SJohn Marino start_mspq 23586d7f5d3SJohn Marino ;; 23686d7f5d3SJohn Marino 23786d7f5d3SJohn Marinostop) 23886d7f5d3SJohn Marino stop_mta 23986d7f5d3SJohn Marino stop_mspq 24086d7f5d3SJohn Marino ;; 24186d7f5d3SJohn Marino 24286d7f5d3SJohn Marinorestart) 24386d7f5d3SJohn Marino restart_mta 24486d7f5d3SJohn Marino restart_mspq 24586d7f5d3SJohn Marino ;; 24686d7f5d3SJohn Marino 24786d7f5d3SJohn Marinostart-mta) 24886d7f5d3SJohn Marino start_mta 24986d7f5d3SJohn Marino ;; 25086d7f5d3SJohn Marino 25186d7f5d3SJohn Marinostop-mta) 25286d7f5d3SJohn Marino stop_mta 25386d7f5d3SJohn Marino ;; 25486d7f5d3SJohn Marino 25586d7f5d3SJohn Marinorestart-mta) 25686d7f5d3SJohn Marino restart_mta 25786d7f5d3SJohn Marino ;; 25886d7f5d3SJohn Marino 25986d7f5d3SJohn Marinostart-mspq) 26086d7f5d3SJohn Marino start_mspq 26186d7f5d3SJohn Marino ;; 26286d7f5d3SJohn Marino 26386d7f5d3SJohn Marinostop-mspq) 26486d7f5d3SJohn Marino stop_mspq 26586d7f5d3SJohn Marino ;; 26686d7f5d3SJohn Marino 26786d7f5d3SJohn Marinorestart-mspq) 26886d7f5d3SJohn Marino restart_mspq 26986d7f5d3SJohn Marino ;; 27086d7f5d3SJohn Marino 27186d7f5d3SJohn Marino*) 27286d7f5d3SJohn Marino echo "Usage: `basename $0` {start|stop|restart}" >&2 27386d7f5d3SJohn Marino echo " `basename $0` {start-mta|stop-mta|restart-mta}" >&2 27486d7f5d3SJohn Marino echo " `basename $0` {start-mspq|stop-mspq|restart-mspq}" >&2 27586d7f5d3SJohn Marino exit 64 27686d7f5d3SJohn Marino ;; 27786d7f5d3SJohn Marino 27886d7f5d3SJohn Marinoesac 27986d7f5d3SJohn Marinoexit 0 280