From d15e810db9a57833272cceffa41998575360cb0c Mon Sep 17 00:00:00 2001 From: Mateusz Piotrowski <0mp@FreeBSD.org> Date: Thu, 5 Sep 2019 14:52:22 +0000 Subject: rc: Honor ${name}_env when a custom *_cmd is defined (e.g., start_cmd) A user may set ${name}_env variable in rc.conf(5) in order to set additional environment variables for a service command. Unfortunately, at the moment this variable is only honored when the command is specified via the command variable. Those additional environment variables coming from ${name}_env are never set if the service is started via the ${rc_arg}_cmd variable (for example start_cmd). PR: 239692 Reviewed by: bcr, jilles Approved by: src (jilles) Differential Revision: https://reviews.freebsd.org/D21228 --- libexec/rc/rc.subr | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libexec') diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr index 93d2cfda87b77..4ae3c7ec1084a 100644 --- a/libexec/rc/rc.subr +++ b/libexec/rc/rc.subr @@ -1036,6 +1036,9 @@ run_rc_command() _postcmd=\$${rc_arg}_postcmd if [ -n "$_cmd" ]; then + if [ -n "$_env" ]; then + eval "export -- $_env" + fi _run_rc_precmd || return 1 _run_rc_doit "$_cmd $rc_extra_args" || return 1 _run_rc_postcmd -- cgit v1.3