Using /etc/rc.d/devfs from command-line
Jeremie Le Hen
jeremie at le-hen.org
Wed Feb 21 23:09:14 UTC 2007
Hi,
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
Best regards,
--
Jeremie Le Hen
< jeremie at le-hen dot org >< ttz at chchile dot org >
-------------- next part --------------
? .devfs.swp
? rc.d_devfs.patch
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 21 Feb 2007 22:55:53 -0000
@@ -14,6 +14,21 @@ name="devfs"
start_cmd='devfs_start'
stop_cmd=':'
+set_rulesets()
+{
+ 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
+ fi
+}
+
devfs_start()
{
if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ]; then
@@ -22,17 +37,7 @@ devfs_start()
devfs_set_ruleset $devfs_system_ruleset /dev
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
- fi
+ set_rulesets
fi
read_devfs_conf
}
@@ -67,4 +72,14 @@ read_devfs_conf()
}
load_rc_config $name
-run_rc_command "$1"
+cmd="$1"
+if [ $# -gt 0 ]; then
+ shift
+fi
+if [ -n "$*" ]; then
+ start_cmd="set_rulesets"
+ devfs_set_rulesets="$*"
+ devfs_init_rulesets
+fi
+
+run_rc_command "$cmd"
More information about the freebsd-current
mailing list