xref: /dragonfly/etc/rc.sendmail (revision abf903a5)
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.3 2005/07/25 00:24:31 gshapiro 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	# Check to make sure we are configured to start an MTA
89	case ${sendmail_enable} in
90	[Nn][Oo][Nn][Ee])
91		return
92		;;
93	[Yy][Ee][Ss])
94		;;
95	*)
96		case ${sendmail_submit_enable} in
97		[Yy][Ee][Ss])
98			;;
99		*)
100			case ${sendmail_outbound_enable} in
101			[Yy][Ee][Ss])
102				;;
103			*)
104				return
105				;;
106			esac
107			;;
108		esac
109		;;
110	esac
111
112	if [ -r ${sendmail_pidfile} ]; then
113		echo -n ' sendmail'
114		kill -TERM `head -1 ${sendmail_pidfile}`
115	else
116		echo "$0: stop-mta: ${sendmail_pidfile} not found"
117	fi
118}
119
120restart_mta()
121{
122	# Check to make sure we are configured to start an MTA
123	case ${sendmail_enable} in
124	[Nn][Oo][Nn][Ee])
125		return
126		;;
127	[Yy][Ee][Ss])
128		;;
129	*)
130		case ${sendmail_submit_enable} in
131		[Yy][Ee][Ss])
132			;;
133		*)
134			case ${sendmail_outbound_enable} in
135			[Yy][Ee][Ss])
136				;;
137			*)
138				return
139				;;
140			esac
141			;;
142		esac
143		;;
144	esac
145
146	if [ -r ${sendmail_pidfile} ]; then
147		echo -n ' sendmail'
148		kill -HUP `head -1 ${sendmail_pidfile}`
149	else
150		echo "$0: restart-mta: ${sendmail_pidfile} not found"
151	fi
152}
153
154start_mspq()
155{
156	case ${sendmail_enable} in
157	[Nn][Oo][Nn][Ee])
158		;;
159	*)
160		if [ -r /etc/mail/submit.cf ]; then
161			case ${sendmail_msp_queue_enable} in
162			[Yy][Ee][Ss])
163				echo -n ' sendmail-clientmqueue'
164				${sendmail_program} ${sendmail_msp_queue_flags}
165				;;
166			esac
167		fi
168		;;
169	esac
170}
171
172stop_mspq()
173{
174	# Check to make sure we are configured to start an MSP queue runner
175	case ${sendmail_enable} in
176	[Nn][Oo][Nn][Ee])
177		return
178		;;
179	*)
180		if [ -r /etc/mail/submit.cf ]; then
181			case ${sendmail_msp_queue_enable} in
182			[Yy][Ee][Ss])
183				;;
184			*)
185				return
186				;;
187			esac
188		fi
189		;;
190	esac
191
192	if [ -r ${sendmail_mspq_pidfile} ]; then
193		echo -n ' sendmail-clientmqueue'
194		kill -TERM `head -1 ${sendmail_mspq_pidfile}`
195	else
196		echo "$0: stop-mspq: ${sendmail_mspq_pidfile} not found"
197	fi
198}
199
200restart_mspq()
201{
202	# Check to make sure we are configured to start an MSP queue runner
203	case ${sendmail_enable} in
204	[Nn][Oo][Nn][Ee])
205		return
206		;;
207	*)
208		if [ -r /etc/mail/submit.cf ]; then
209			case ${sendmail_msp_queue_enable} in
210			[Yy][Ee][Ss])
211				;;
212			*)
213				return
214				;;
215			esac
216		fi
217		;;
218	esac
219
220	if [ -r ${sendmail_mspq_pidfile} ]; then
221		echo -n ' sendmail-clientmqueue'
222		kill -HUP `head -1 ${sendmail_mspq_pidfile}`
223	else
224		echo "$0: restart-mspq: ${sendmail_mspq_pidfile} not found"
225	fi
226}
227
228# If no argument is given, assume we are being called at boot time.
229_action=${1:-start}
230
231case ${_action} in
232start)
233	start_mta
234	start_mspq
235	;;
236
237stop)
238	stop_mta
239	stop_mspq
240	;;
241
242restart)
243	restart_mta
244	restart_mspq
245	;;
246
247start-mta)
248	start_mta
249	;;
250
251stop-mta)
252	stop_mta
253	;;
254
255restart-mta)
256	restart_mta
257	;;
258
259start-mspq)
260	start_mspq
261	;;
262
263stop-mspq)
264	stop_mspq
265	;;
266
267restart-mspq)
268	restart_mspq
269	;;
270
271*)
272	echo "Usage: `basename $0` {start|stop|restart}" >&2
273	echo "       `basename $0` {start-mta|stop-mta|restart-mta}" >&2
274	echo "       `basename $0` {start-mspq|stop-mspq|restart-mspq}" >&2
275	exit 64
276	;;
277
278esac
279exit 0
280