summaryrefslogtreecommitdiff
path: root/security/razorback-dispatcher/files/dispatcher.in
blob: e1240a59700fb19eb592851af06d07f8a7b85b06 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/sh

# $FreeBSD$
#
# PROVIDE: dispatcher
# REQUIRE: %%ACTIVEMQ%%mysql
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable the razorback dispatcher:
#
# dispatcher_enable="YES"

. /etc/rc.subr

name=dispatcher
rcvar=dispatcher_enable

load_rc_config $name

dispatcher_enable=${dispatcher_enable:-"NO"}
dispatcher_user=${dispatcher_user:-"razorback"}
dispatcher_group=${dispatcher_group:-"razorback"}

command=%%PREFIX%%/bin/dispatcher

start_precmd="dispatcher_precmd-%%ACTIVEMQ_LOC%%"
_piddir=/var/run/razorback
pidfile=${_piddir}/dispatcher.pid

dispatcher_precmd-remote()
{
	install -d -o $dispatcher_user -g $dispatcher_user -m 755 $_piddir
}

dispatcher_precmd-local()
{
	local iter

	install -d -o $dispatcher_user -g $dispatcher_user -m 755 $_piddir
	iter=0
	while [ `sockstat -l | egrep -c '^activemq.*tcp.*'` -lt 4 ]; do
		if [ ${iter} -eq 30 ]; then
			err 1 "Failed to detect a functional activemq.  Please check your configuration"
		fi
		sleep 2
		iter=$(( ${iter} + 1))
	done
}

run_rc_command "$1"