freebsd-skq/etc/rc.d/devfs
Lars Engels 6c1a5e837d - Add descriptions to most of the rc scripts. Those are mostly taken from their
daemon's manpage and probably improved.
- Consistently use "filesystem" not "file system".

Approved by:	bapt, brueffer
Differential Revision:	D452
2016-04-23 16:10:54 +00:00

73 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: devfs
# REQUIRE: mountcritremote
# BEFORE: SERVERS securelevel
# KEYWORD: nojail
. /etc/rc.subr
name="devfs"
desc="Device filesystem"
start_cmd='devfs_start'
stop_cmd=':'
devfs_start()
{
if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ] ||
checkyesno devfs_load_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 devicelist parameter; do
case "${action}" in
l*) for device in ${devicelist}; do
if [ ! -e ${parameter} ]; then
ln -fs ${device} ${parameter}
fi
done
;;
o*) for device in ${devicelist}; do
if [ -c ${device} ]; then
chown ${parameter} ${device}
fi
done
;;
p*) for device in ${devicelist}; do
if [ -c ${device} ]; then
chmod ${parameter} ${device}
fi
done
;;
esac
done < /etc/devfs.conf
fi
}
load_rc_config $name
run_rc_command "$1"