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.
This commit is contained in:
parent
fde7fd8dbc
commit
77616d41a2
12
etc/rc.subr
12
etc/rc.subr
@ -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
|
||||
|
@ -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 .
|
||||
|
Loading…
x
Reference in New Issue
Block a user