aboutsummaryrefslogtreecommitdiff
path: root/sysutils/zrepl/files/zrepl.in
blob: 095a43f0d610dd751bb3169f9f018d22efcf9dd4 (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
#!/bin/sh

# PROVIDE: zrepl
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# zrepl_enable (bool):	Set to YES to enable the zrepl service.
#			Default: NO
# zrepl_config (str):	File containing zrepl configuration details.
#			Default: %%PREFIX%%/etc/zrepl/zrepl.yml
# zrepl_user (str):	The user account used to run the zrepl daemon.
#			Do not specifically set this to an empty string as this
#			will cause the daemon to run as root.
#			Default: root
# zrepl_group (str):	The group account used to run the zrepl daemon.
#			Do not specifically set this to an empty string as this
#			will cause the daemon to run with group wheel.
#			Default: wheel
# zrepl_flags (str):	Extra flags passed to zrepl
#			Default: ""
# zrepl_facility (str):	Syslog facility to use
#			Default: local0
# zrepl_priority (str):	Syslog priority to use
#			Default: alert

. /etc/rc.subr
name=zrepl
rcvar=${name}_enable
load_rc_config $name

: ${zrepl_enable:="NO"}
: ${zrepl_config:="%%PREFIX%%/etc/zrepl/zrepl.yml"}
: ${zrepl_user:="root"}
: ${zrepl_group:="wheel"}
: ${zrepl_flags:=""}
: ${zrepl_facility:="local0"}
: ${zrepl_priority:="alert"}
: ${zrepl_options:="${zrepl_flags} --config ${zrepl_config}"}

pidfile="/var/run/zrepl.pid"
command="/usr/sbin/daemon"
procname="%%PREFIX%%/bin/zrepl"
command_args="-p ${pidfile} %%DAEMON_LOGGING%% ${procname} ${zrepl_options} daemon"

start_precmd="zrepl_precmd"
stop_postcmd="zrepl_postcmd"
restart_precmd="zrepl_checkconfig"
configtest_cmd="zrepl_checkconfig"
extra_commands="configtest"

zrepl_precmd()
{
	if [ ! -d "/var/run/zrepl/stdinserver" ]; then
		install -d -g ${zrepl_group} -o ${zrepl_user} -m 0700 -- "/var/run/zrepl";
		install -d -g ${zrepl_group} -o ${zrepl_user} -m 0700 -- "/var/run/zrepl/stdinserver";
	fi

	if [ ! -e "${pidfile}" ]; then
		install -g ${zrepl_group} -o ${zrepl_user} -- /dev/null "${pidfile}";
	fi

	zrepl_checkconfig
}

zrepl_postcmd()
{
	rm -f -- "${pidfile}"
}

zrepl_checkconfig()
{
	echo "Performing sanity check on zrepl configuration:"
	eval ${procname} ${zrepl_options} configcheck
}

run_rc_command "$1"