freebsd-dev/sbin/init/rc.d/devfs
Brad Davis 1135e97b7c Move rc startup scripts from etc/ to sbin/init/
This keeps most startup scripts as CONFS per discussion on src-committers from
back during BSDCan.

Approved by:	will (mentor)
Differential Revision:	https://reviews.freebsd.org/D16466
2018-07-28 20:36:23 +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"