mirror of
https://git.freebsd.org/ports.git
synced 2025-05-12 23:31:50 -04:00
124 lines
3.5 KiB
Bash
124 lines
3.5 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: recorderd
|
|
# REQUIRE: LOGIN cleanvar
|
|
# KEYWORD: shutdown
|
|
|
|
# Add the following lines to /etc/rc.conf to enable:
|
|
# recorderd_enable (bool) Set to "NO" by default.
|
|
# Set it to "YES" to enable recorderd
|
|
# recorderd_options (str) Set to "" by default
|
|
# recorderd_user (str) Set to "%%RECORDERD_USER%%" by default.
|
|
# recorderd_group (str) Set to "%%RECORDERD_GROUP%%" by default.
|
|
# recorderd_config_file (str) Set to "%%PREFIX%%/etc/${name}.conf" by default.
|
|
# recorderd_data_dir (str) Set to "%%RECORDERD_DATA%%" by default.
|
|
# recorderd_run_dir (str) Set to "%%RECORDERD_RUN%%" by default.
|
|
# recorderd_syslog_enable (bool) Set to "NO" by default.
|
|
# Set it to "YES" to enable syslog stdout/stderr
|
|
# recorderdlimits_enable (bool) Set to "NO" by default.
|
|
# Set it to "YES" to enable recorderdlimits
|
|
# recorderdlimits_args (str) Set to "-e -U ${recorderd_user}" by default
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="recorderd"
|
|
rcvar=recorderd_enable
|
|
|
|
load_rc_config ${name}
|
|
|
|
: ${recorderd_enable:="NO"}
|
|
: ${recorderd_options:=""}
|
|
: ${recorderd_user:="%%RECORDERD_USER%%"}
|
|
: ${recorderd_group:="%%RECORDERD_GROUP%%"}
|
|
: ${recorderd_config_file:="%%PREFIX%%/etc/${name}.conf"}
|
|
: ${recorderd_data_dir:="%%RECORDERD_DATA%%"}
|
|
: ${recorderd_run_dir:="%%RECORDERD_RUN%%"}
|
|
: ${recorderd_syslog_enable:="NO"}
|
|
|
|
: ${recorderdlimits_enable:="NO"}
|
|
: ${recorderdlimits_args:="-e -U ${recorderd_user}"}
|
|
|
|
start_precmd="${name}_precmd"
|
|
restart_precmd="${name}_checkconfig"
|
|
stop_postcmd="${name}_poststop"
|
|
keygen_cmd="${name}_keygen"
|
|
keygen_precmd="${name}_checkconfig"
|
|
|
|
extra_commands='keygen'
|
|
|
|
pidfile="${recorderd_run_dir}/${name}.pid"
|
|
|
|
# recorderd creates it own PID file so need to remove if stale
|
|
lock_file="${recorderd_data_dir}/${name}.pid"
|
|
|
|
required_files="${recorderd_config_file}"
|
|
|
|
_recorderd_program="%%PREFIX%%/sbin/recorderd"
|
|
_recorderd_arguments="--quiet --config-file=${recorderd_config_file} ${recorderd_options}"
|
|
|
|
command="/usr/sbin/daemon"
|
|
command_args="-f"
|
|
checkyesno recorderd_syslog_enable && command_args="-S -T recorderd"
|
|
command_args="${command_args} -P ${pidfile} -R 60 -- ${_recorderd_program} ${_recorderd_arguments}"
|
|
#procname=${_recorderd_program} # do not override procname as program runs under daemon
|
|
|
|
# setup environment to reduce memory loading
|
|
export GODEBUG='madvdontneed=1'
|
|
export MALLOC_CONF='abort:true,narenas:1'
|
|
|
|
recorderd_checkdirs()
|
|
{
|
|
local dir
|
|
for dir in "${recorderd_data_dir}" "${recorderd_run_dir}"
|
|
do
|
|
[ -d "${dir}" ] || install -d -o "${recorderd_user}" -g "${recorderd_group}" -m 770 "${dir}"
|
|
done
|
|
cd "${recorderd_data_dir}"
|
|
}
|
|
|
|
recorderd_checkconfig()
|
|
{
|
|
recorderd_checkdirs
|
|
|
|
#echo "Performing sanity check on recorderd configuration:"
|
|
#eval ${command} ${recorderd_flags} -t
|
|
}
|
|
|
|
recorderd_precmd()
|
|
{
|
|
recorderd_checkconfig
|
|
|
|
if [ -e "${lock_file}" ]
|
|
then
|
|
pid=$(check_pidfile "${lock_file}" "${_recorderd_program}")
|
|
if [ -n "${pid}" ]
|
|
then
|
|
echo "another recorderd is running on pid: ${pid}"
|
|
else
|
|
rm -f "${lock_file}"
|
|
fi
|
|
fi
|
|
|
|
if checkyesno recorderdlimits_enable
|
|
then
|
|
eval $(/usr/bin/limits ${recorderdlimits_args}) 2>/dev/null
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
recorderd_poststop()
|
|
{
|
|
rm -f "${pidfile}"
|
|
rm -f "${lock_file}"
|
|
}
|
|
|
|
recorderd_keygen()
|
|
{
|
|
for c in generate-identity
|
|
do
|
|
su -m "${recorderd_user}" -c "${_recorderd_program} ${_recorderd_arguments} ${c} ${recorderd_data_dir}"
|
|
done
|
|
}
|
|
|
|
run_rc_command "$1"
|