Date: Thu, 22 Feb 2007 00:11:08 +0100 From: Jeremie Le Hen <jeremie@le-hen.org> To: freebsd-current@FreeBSD.org Subject: Using /etc/rc.d/devfs from command-line Message-ID: <20070221231108.GC2479@obiwan.tataz.chchile.org>
next in thread | raw e-mail | index | archive | help
--PuGuTyElPB9bOcsM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 > --PuGuTyElPB9bOcsM Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="rc.d_devfs.patch" ? .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" --PuGuTyElPB9bOcsM--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070221231108.GC2479>