freebsd-skq/etc/rc.d/devfs
Mike Makonnen ec6f2b9b88 Move devfs earlier in the boot sequence. Some system daemons and other
programs may need to use the symlinks and permissions that it sets up.

Discussed on: -current
2004-10-23 06:50:50 +00:00

65 lines
1.2 KiB
Bash

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: devfs
# REQUIRE: rcconf mountcritremote
# BEFORE: SERVERS securelevel
# KEYWORD: 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"