Date: Mon, 15 Aug 2022 14:42:45 GMT From: Mariusz Zaborski <oshogbo@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: c9be47b34dd8 - main - rc: add ${name}_setup script support Message-ID: <202208151442.27FEgjSd083060@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=c9be47b34dd847da1d4ab0feee4a6100b2c5ea0d commit c9be47b34dd847da1d4ab0feee4a6100b2c5ea0d Author: Franco Fichtner <franco@opnsense.org> AuthorDate: 2022-08-15 14:41:31 +0000 Commit: Mariusz Zaborski <oshogbo@FreeBSD.org> CommitDate: 2022-08-15 14:43:12 +0000 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 --- libexec/rc/rc.subr | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr index 612ee12883ec..9ae93dc391a2 100644 --- a/libexec/rc/rc.subr +++ b/libexec/rc/rc.subr @@ -804,6 +804,8 @@ startmsg() # # ${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}_limits n limits(1) to apply to ${command}. @@ -993,8 +995,8 @@ run_rc_command() _group=\$${name}_group _groups=\$${name}_groups \ _fib=\$${name}_fib _env=\$${name}_env \ _prepend=\$${name}_prepend _login_class=\${${name}_login_class:-daemon} \ - _limits=\$${name}_limits _oomprotect=\$${name}_oomprotect \ - _env_file=\$${name}_env_file + _limits=\$${name}_limits _oomprotect=\$${name}_oomprotect \ + _setup=\$${name}_setup _env_file=\$${name}_env_file if [ -n "$_env_file" ] && [ -r "${_env_file}" ]; then # load env from file set -a @@ -1149,6 +1151,12 @@ $command $rc_flags $command_args" fi fi + if [ -n "$_setup" ]; then + if ! _run_rc_doit "$_setup"; then + warn "failed to setup ${name}" + fi + fi + # Prepend default limits _doit="$_cd limits -C $_login_class $_limits $_doit" @@ -2187,7 +2195,7 @@ check_kern_features() # check_namevarlist var # 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() { local _v
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202208151442.27FEgjSd083060>