freebsd-skq/etc/rc.d/devfs
green b32a2840fd Add a way for rc.d/devfs to set more than just the system devfs up.
Yes, this means for stuff OTHER than jails, too.  Example usage:
#devfs_system_ruleset="root"
devfs_set_rulesets="/dev=root /etc/namedb/dev=named_devfs"
2004-03-20 07:10:16 +00:00

65 lines
1.2 KiB
Bash

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: devfs
# REQUIRE: LOGIN
# BEFORE: securelevel
# KEYWORD: FreeBSD nojail
. /etc/rc.subr
name="devfs"
start_cmd='devfs_start'
stop_cmd=':'
devfs_start()
{
if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ]; then
devfs_init_rulesets
if [ -n "$devfs_system_ruleset" ]; then
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
fi
read_devfs_conf
}
read_devfs_conf()
{
if [ -r /etc/devfs.conf ]; then
cd /dev
while read action device parameter; do
case "${action}" in
l*) if [ -c ${device} -a ! -e ${parameter} ]; then
ln -fs ${device} ${parameter}
fi
;;
o*) if [ -c ${device} ]; then
chown ${parameter} ${device}
fi
;;
p*) if [ -c ${device} ]; then
chmod ${parameter} ${device}
fi
;;
esac
done < /etc/devfs.conf
fi
}
load_rc_config $name
run_rc_command "$1"