summaryrefslogtreecommitdiff
path: root/sysutils/cbsd/files/cbsd-statsd-hoster.in
blob: 730898d63964df1579d60d38f45d443cd5fd3850 (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/sh
#
# PROVIDE: cbsd_statsd_hoster
# REQUIRE: LOGIN FILESYSTEMS sshd
# KEYWORD: shutdown
#
# cbsd_statsd_hoster_enable="YES"
#

. /etc/rc.subr

name=cbsd_statsd_hoster
rcvar=cbsd_statsd_hoster_enable
load_rc_config $name

# Set defaults
: ${cbsd_statsd_hoster_enable:="NO"}

export workdir="${cbsd_workdir}"
globalconf=${cbsd_globalconf:-"%%PREFIX%%/cbsd/cbsd.conf"}

start_cmd=${name}_start
restart_cmd=${name}_restart
extra_commands="restart"

command="%%PREFIX%%/cbsd/tools/racct-hoster-statsd"
pidfile="/var/run/${name}.pid"
daemon_pidfile="/var/run/${name}-daemon.pid"
daemon_logdir="/var/log/${name}"
daemon_logfile="${daemon_logdir}/cbsd-statsd-hoster.log"

command_args="&"

pidfile=/var/run/racct-hoster-statsd.pid

if [ ! -f ${globalconf} ]; then
	echo "cbsd: no such ${globalconf}";
	exit 1
fi

if [ ! -f ${subr} ]; then
	echo "cbsd: no such ${subr}";
	exit 1
fi

. ${globalconf}
. ${subrdir}/nc.subr

cbsd_statsd_hoster_start()
{
	local args= racct_enabled=

	# RACCT enabled?
	racct_enabled=$( /sbin/sysctl -qn kern.racct.enable )
	[ $? -ne 0 ] && err 1 "cbsd-statsd-hoster: RACCT not enabled"
	[ "${racct_enabled}" != "1" ] && err 1 "cbsd-statsd-hoster: RACCT not enabled"

	readconf racct-hoster-statsd.conf
	[ -n "${log_file}" ] && args="${args} --log_file=${log_file}"
	[ -n "${log_level}" ] && args="${args} --log_level=${log_level}"
	[ -n "${loop_interval}" ] && args="${args} --loop_interval=${loop_interval}"
	[ -n "${save_loop_count}" ] && args="${args} --save_loop_count=${save_loop_count}"

	case "${prometheus_exporter_enable}" in
		[Yy][Ee][Ss])
			args="${args} --prometheus_exporter=1"
			;;
		[No][Oo])
			args="${args} --prometheus_exporter=0"
			;;
	esac

	case "${beanstald_enable}" in
		[Yy][Ee][Ss])
			args="${args} --save_beanstalkd=1"
			;;
		[No][Oo])
			args="${args} --save_beanstalkd=0"
			;;
	esac

	case "${sqlite3_enable}" in
		[Yy][Ee][Ss])
			args="${args} --save_sqlite=1"
			;;
		[No][Oo])
			args="${args} --save_sqlite=0"
			;;
	esac

	[ ! -d ${daemon_logdir} ] && mkdir -p ${daemon_logdir}
	touch ${daemon_logfile}

	/usr/sbin/daemon -f -R5 -p ${pidfile} -P ${daemon_pidfile} -o ${daemon_logfile} /usr/bin/env workdir=${cbsd_workdir} ${command} ${args}
}

cbsd_statsd_hoster_restart()
{
	cbsd_statsd_hoster_stop
	cbsd_statsd_hoster_start
}

run_rc_command "$1"