rc.subr revision 1.7
1#	$OpenBSD: rc.subr,v 1.7 2010/10/28 21:03:33 robert Exp $
2
3[ -z "${local_rcconf}" ] && . /etc/rc.conf
4
5rc_err() {
6	echo $1
7	exit 1
8}
9
10rc_start() {
11	type rc_pre >/dev/null && rc_pre
12	${daemon} ${daemon_flags} >/dev/null
13}
14
15rc_check() {
16	pgrep -f "^${pexp}" >/dev/null
17}
18
19rc_reload() {
20	pkill -HUP -f "^${pexp}"
21}
22
23rc_stop() {
24	pkill -f "^${pexp}"
25	type rc_post >/dev/null && rc_post || return 0
26}
27
28rc_cmd() {
29	_name=`basename $0`
30	eval _rcflags=\${${_name}_flags}
31
32	echo $_rcflags
33	exit
34
35	[ `id -u` -eq 0 -o X"$1" = "Xcheck" ] || \
36		rc_err "$0: need root privileges"
37	[ -n "${daemon}"  ] || rc_err "$0: daemon is not set"
38	[ -n "${_rcflags}" ] && daemon_flags=${_rcflags}
39	[ -n "${pexp}"    ] || pexp="${daemon}${daemon_flags:+ ${daemon_flags}}"
40
41	case "$1" in
42	check)
43		rc_check
44		;;
45	start)
46		rc_check || rc_start
47		;;
48	stop)
49		rc_stop
50		;;
51	reload)
52		rc_check && rc_reload
53		;;
54	restart)
55		rc_stop
56		while rc_check; do
57			sleep 1
58		done
59		rc_start
60		;;
61	*)
62		rc_err "usage: $0 {start|check|reload|restart|stop}"
63	esac
64}
65