conf/109562: [rc.d] [patch] Make rc.d/devfs usable from command-line
Jeremie Le Hen
jeremie at le-hen.org
Mon Feb 26 13:20:07 UTC 2007
>Number: 109562
>Category: conf
>Synopsis: [rc.d] [patch] Make rc.d/devfs usable from command-line
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon Feb 26 13:20:06 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Jeremie Le Hen <jeremie at le-hen.org>
>Release: FreeBSD 7.0-CURRENT i386
>Organization:
>Environment:
FreeBSD jarjarbinks 7.0-CURRENT FreeBSD 7.0-CURRENT #23: Sun Feb 25 20:01:52 UTC 2007 root at jarjarbinks/usr/obj/usr/src/sys/JARJARBINKS i386
>Description:
The attached patch allows to provide arguments to rc.d/devfs with
the same syntax as $devfs_set_rulesets. This is then easier to mount
manually devfs inside a directory and apply some predefined rulesets
on it. Before this patch you had to manually apply rules to the
devfs mount point, provided pre-configured rulesets had been loaded
into the kernel (with rc.subr's devfs_init_rulesets()).
Example:
% mount_devfs none /space/chroot/dev
% /etc/rc.d/devfs start /space/chroot/dev=devfsrules_jail
>How-To-Repeat:
>Fix:
--- rc.d_devfs.patch begins here ---
Index: devfs
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/devfs,v
retrieving revision 1.12
diff -u -p -r1.12 devfs
--- devfs 21 Jan 2006 14:31:45 -0000 1.12
+++ devfs 22 Feb 2007 08:04:16 -0000
@@ -14,8 +14,27 @@ name="devfs"
start_cmd='devfs_start'
stop_cmd=':'
+set_rulesets()
+{
+ local _dir_set
+ local _dir
+ local _set
+ for _dir_set in "$@"; do
+ _dir=${_dir_set%=*}
+ _set=${_dir_set#*=}
+ devfs_set_ruleset $_set $_dir
+ devfs_apply_ruleset $_set $_dir
+ done
+}
+
devfs_start()
{
+ if [ $# -gt 0 ]; then
+ devfs_init_rulesets
+ set_rulesets "$@"
+ return
+ fi
+
if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ]; then
devfs_init_rulesets
if [ -n "$devfs_system_ruleset" ]; then
@@ -23,15 +42,7 @@ devfs_start()
devfs_apply_ruleset $devfs_system_ruleset /dev
fi
if [ -n "$devfs_set_rulesets" ]; then
- local _dir_set
- local _dir
- local _set
- for _dir_set in $devfs_set_rulesets; do
- _dir=${_dir_set%=*}
- _set=${_dir_set#*=}
- devfs_set_ruleset $_set $_dir
- devfs_apply_ruleset $_set $_dir
- done
+ set_rulesets "$devfs_set_rulesets"
fi
fi
read_devfs_conf
@@ -67,4 +78,4 @@ read_devfs_conf()
}
load_rc_config $name
-run_rc_command "$1"
+run_rc_command "$@"
--- rc.d_devfs.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list