Author: hrs
Date: Sat Oct 11 23:49:27 2014
New Revision: 272974
URL: https://svnweb.freebsd.org/changeset/base/272974

Log:
  Add ${name}_env and ${name}_prepend.  ${name}_env is an argument list which
  will be passed to env(1).  ${name}_prepend is simply prepended to the command
  line for $command.

Modified:
  head/etc/rc.subr
  head/share/man/man8/rc.subr.8

Modified: head/etc/rc.subr
==============================================================================
--- head/etc/rc.subr    Sat Oct 11 23:31:44 2014        (r272973)
+++ head/etc/rc.subr    Sat Oct 11 23:49:27 2014        (r272974)
@@ -749,6 +749,8 @@ check_startmsgs()
 #                              NOTE:   $flags from the parent environment
 #                                      can be used to override this.
 #
+#      ${name}_env     n       Environment variables to run ${command} with.
+#
 #      ${name}_fib     n       Routing table number to run ${command} with.
 #
 #      ${name}_nice    n       Nice level to run ${command} at.
@@ -764,6 +766,8 @@ check_startmsgs()
 #                              to run the chrooted ${command} with.
 #                              Requires /usr to be mounted.
 #
+#      ${name}_prepend n       Command added before ${command}.
+#
 #      ${rc_arg}_cmd   n       If set, use this as the method when invoked;
 #                              Otherwise, use default command (see below)
 #
@@ -937,7 +941,8 @@ run_rc_command()
        eval _chdir=\$${name}_chdir     _chroot=\$${name}_chroot \
            _nice=\$${name}_nice        _user=\$${name}_user \
            _group=\$${name}_group      _groups=\$${name}_groups \
-           _fib=\$${name}_fib
+           _fib=\$${name}_fib          _env=\$${name}_env \
+           _prepend=\$${name}_prepend
 
        if [ -n "$_user" ]; then        # unset $_user if running as that user
                if [ "$_user" = "$(eval $IDCMD)" ]; then
@@ -1022,12 +1027,14 @@ run_rc_command()
                                _doit="\
 ${_nice:+nice -n $_nice }\
 ${_fib:+setfib -F $_fib }\
+${_env:+env $_env }\
 chroot ${_user:+-u $_user }${_group:+-g $_group }${_groups:+-G $_groups }\
 $_chroot $command $rc_flags $command_args"
                        else
                                _doit="\
 ${_chdir:+cd $_chdir && }\
 ${_fib:+setfib -F $_fib }\
+${_env:+env $_env }\
 $command $rc_flags $command_args"
                                if [ -n "$_user" ]; then
                                    _doit="su -m $_user -c 'sh -c \"$_doit\"'"
@@ -1038,6 +1045,9 @@ $command $rc_flags $command_args"
                                        fi
                                        _doit="nice -n $_nice $_doit"
                                fi
+                               if [ -n "$_prepend" ]; then
+                                       _doit="$_prepend $_doit"
+                               fi
                        fi
 
                                        # run the full command

Modified: head/share/man/man8/rc.subr.8
==============================================================================
--- head/share/man/man8/rc.subr.8       Sat Oct 11 23:31:44 2014        
(r272973)
+++ head/share/man/man8/rc.subr.8       Sat Oct 11 23:49:27 2014        
(r272974)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 23, 2012
+.Dd October 12, 2014
 .Dt RC.SUBR 8
 .Os
 .Sh NAME
@@ -568,6 +568,22 @@ to before running
 Only supported after
 .Pa /usr
 is mounted.
+.It Va ${name}_env
+A list of environment variables to run
+.Va command
+with.
+This will be passed as arguments to
+.Xr env 1
+utility.
+.It Va ${name}_fib
+FIB
+.Pa Routing Table
+number to run
+.Va command
+with.
+See
+.Xr setfib 1
+for more details.
 .It Va ${name}_flags
 Arguments to call
 .Va command
@@ -622,6 +638,14 @@ as.
 Comma separated list of supplementary groups to run the chrooted
 .Va command
 with.
+.It Va ${name}_prepend
+Commands to be prepended to
+.Va command .
+This is a generic version of
+.Va ${name}_env ,
+.Va ${name}_fib ,
+or
+.Va ${name}_nice .
 .It Ar argument Ns Va _cmd
 Shell commands which override the default method for
 .Ar argument .
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to