Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F101881846
D40369.id122766.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D40369.id122766.diff
View Options
Index: usr.sbin/service/service.8
===================================================================
--- usr.sbin/service/service.8
+++ usr.sbin/service/service.8
@@ -48,6 +48,7 @@
.Nm
.Op Fl j Ar jail
.Op Fl v
+.Op Fl E Ar var=value
.Ar script
.Ar command
.Sh DESCRIPTION
@@ -67,6 +68,13 @@
.Pp
The options are as follows:
.Bl -tag -width F1
+.It Fl E Ar var=value
+Set the environment variable
+.Ar var
+to the specified
+.Ar value
+before starting the script.
+This option can be used multiple times.
.It Fl e
List services that are enabled.
The list of scripts to check is compiled using
@@ -117,6 +125,9 @@
which is how they are set in
.Pa /etc/rc
at boot time.
+If the
+.Fl E
+option is used, the corresponding variable is set accordingly.
.Sh EXIT STATUS
.Ex -std
.Sh EXAMPLES
@@ -126,6 +137,7 @@
.Bd -literal -offset -ident
service named status
service -j dns named status
+service -E LC_ALL=C.UTF-8 named start
service -rv
.Ed
.Pp
Index: usr.sbin/service/service.sh
===================================================================
--- usr.sbin/service/service.sh
+++ usr.sbin/service/service.sh
@@ -37,21 +37,23 @@
echo "${0##*/} [-j <jail name or id>] -e"
echo "${0##*/} [-j <jail name or id>] -R"
echo "${0##*/} [-j <jail name or id>] [-v] -l | -r"
- echo "${0##*/} [-j <jail name or id>] [-v] <rc.d script> start|stop|etc."
+ echo "${0##*/} [-j <jail name or id>] [-v] [-E var=value] <rc.d script> start|stop|etc."
echo "${0##*/} -h"
echo ''
- echo "-j Perform actions within the named jail"
- echo '-e Show services that are enabled'
- echo "-R Stop and start enabled $local_startup services"
- echo "-l List all scripts in /etc/rc.d and $local_startup"
- echo '-r Show the results of boot time rcorder'
- echo '-v Verbose'
+ echo "-j Perform actions within the named jail"
+ echo "-E n=val Set variable n to val before executing the rc.d script"
+ echo '-e Show services that are enabled'
+ echo "-R Stop and start enabled $local_startup services"
+ echo "-l List all scripts in /etc/rc.d and $local_startup"
+ echo '-r Show the results of boot time rcorder'
+ echo '-v Verbose'
echo ''
}
-while getopts 'j:ehlrRv' COMMAND_LINE_ARGUMENT ; do
+while getopts 'j:E:ehlrRv' COMMAND_LINE_ARGUMENT ; do
case "${COMMAND_LINE_ARGUMENT}" in
j) JAIL="${OPTARG}" ;;
+ E) VARS="${VARS} ${OPTARG}" ;;
e) ENABLED=eopt ;;
h) usage ; exit 0 ;;
l) LIST=lopt ;;
@@ -72,6 +74,9 @@
[ -n "${RCORDER}" ] && args="${args} -r"
[ -n "${RESTART}" ] && args="${args} -R"
[ -n "${VERBOSE}" ] && args="${args} -v"
+ for var in ${VARS}; do
+ args="${args} -E ${var}"
+ done
# Call jexec(8) with the rebuild args and any positional args that
# were left in $@
@@ -171,7 +176,7 @@
for dir in /etc/rc.d $local_startup; do
if [ -x "$dir/$script" ]; then
[ -n "$VERBOSE" ] && echo "$script is located in $dir"
- exec env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin "$dir/$script" "$@"
+ exec env -i -L -/daemon HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin ${VARS} "$dir/$script" "$@"
fi
done
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Nov 6, 3:32 AM (4 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14477011
Default Alt Text
D40369.id122766.diff (2 KB)
Attached To
Mode
D40369: Extend /usr/bin/service with the possibility to set ENV vars
Attached
Detach File
Event Timeline
Log In to Comment