rc: add ${name}_setup script support
Run a service-based setup script before running the start command. Useful for automatic configuration file generation. Reviewed by: https://reviews.freebsd.org/D36006
This commit is contained in:
parent
530d5f8338
commit
c9be47b34d
@ -804,6 +804,8 @@ startmsg()
|
|||||||
#
|
#
|
||||||
# ${name}_prepend n Command added before ${command}.
|
# ${name}_prepend n Command added before ${command}.
|
||||||
#
|
#
|
||||||
|
# ${name}_setup n Command executed before ${command}.
|
||||||
|
#
|
||||||
# ${name}_login_class n Login class to use, else "daemon".
|
# ${name}_login_class n Login class to use, else "daemon".
|
||||||
#
|
#
|
||||||
# ${name}_limits n limits(1) to apply to ${command}.
|
# ${name}_limits n limits(1) to apply to ${command}.
|
||||||
@ -993,8 +995,8 @@ run_rc_command()
|
|||||||
_group=\$${name}_group _groups=\$${name}_groups \
|
_group=\$${name}_group _groups=\$${name}_groups \
|
||||||
_fib=\$${name}_fib _env=\$${name}_env \
|
_fib=\$${name}_fib _env=\$${name}_env \
|
||||||
_prepend=\$${name}_prepend _login_class=\${${name}_login_class:-daemon} \
|
_prepend=\$${name}_prepend _login_class=\${${name}_login_class:-daemon} \
|
||||||
_limits=\$${name}_limits _oomprotect=\$${name}_oomprotect \
|
_limits=\$${name}_limits _oomprotect=\$${name}_oomprotect \
|
||||||
_env_file=\$${name}_env_file
|
_setup=\$${name}_setup _env_file=\$${name}_env_file
|
||||||
|
|
||||||
if [ -n "$_env_file" ] && [ -r "${_env_file}" ]; then # load env from file
|
if [ -n "$_env_file" ] && [ -r "${_env_file}" ]; then # load env from file
|
||||||
set -a
|
set -a
|
||||||
@ -1149,6 +1151,12 @@ $command $rc_flags $command_args"
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$_setup" ]; then
|
||||||
|
if ! _run_rc_doit "$_setup"; then
|
||||||
|
warn "failed to setup ${name}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Prepend default limits
|
# Prepend default limits
|
||||||
_doit="$_cd limits -C $_login_class $_limits $_doit"
|
_doit="$_cd limits -C $_login_class $_limits $_doit"
|
||||||
|
|
||||||
@ -2187,7 +2195,7 @@ check_kern_features()
|
|||||||
# check_namevarlist var
|
# check_namevarlist var
|
||||||
# Return "0" if ${name}_var is reserved in rc.subr.
|
# Return "0" if ${name}_var is reserved in rc.subr.
|
||||||
|
|
||||||
_rc_namevarlist="program chroot chdir env flags fib nice user group groups prepend"
|
_rc_namevarlist="program chroot chdir env flags fib nice user group groups prepend setup"
|
||||||
check_namevarlist()
|
check_namevarlist()
|
||||||
{
|
{
|
||||||
local _v
|
local _v
|
||||||
|
Loading…
Reference in New Issue
Block a user