devfs revision 231660
1219019Sgabor#!/bin/sh 2219019Sgabor# 3219019Sgabor# $FreeBSD: stable/9/etc/rc.d/devfs 231660 2012-02-14 10:29:32Z dougb $ 4219019Sgabor# 5219019Sgabor 6219019Sgabor# PROVIDE: devfs 7219019Sgabor# REQUIRE: mountcritremote 8219019Sgabor# BEFORE: SERVERS securelevel 9219019Sgabor# KEYWORD: nojail 10219019Sgabor 11219019Sgabor. /etc/rc.subr 12219019Sgabor 13219019Sgaborname="devfs" 14219019Sgaborstart_cmd='devfs_start' 15219019Sgaborstop_cmd=':' 16219019Sgabor 17219019Sgabordevfs_start() 18219019Sgabor{ 19219019Sgabor if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ] || 20219019Sgabor checkyesno devfs_load_rulesets; then 21219019Sgabor devfs_init_rulesets 22219019Sgabor if [ -n "$devfs_system_ruleset" ]; then 23219019Sgabor devfs_set_ruleset $devfs_system_ruleset /dev 24219019Sgabor devfs_apply_ruleset $devfs_system_ruleset /dev 25219019Sgabor fi 26219019Sgabor if [ -n "$devfs_set_rulesets" ]; then 27219019Sgabor local _dir_set 28219019Sgabor local _dir 29219019Sgabor local _set 30219019Sgabor for _dir_set in $devfs_set_rulesets; do 31219019Sgabor _dir=${_dir_set%=*} 32219019Sgabor _set=${_dir_set#*=} 33219019Sgabor devfs_set_ruleset $_set $_dir 34219019Sgabor devfs_apply_ruleset $_set $_dir 35219019Sgabor done 36219019Sgabor fi 37219019Sgabor fi 38219019Sgabor read_devfs_conf 39219019Sgabor} 40219019Sgabor 41219019Sgaborread_devfs_conf() 42219019Sgabor{ 43219019Sgabor if [ -r /etc/devfs.conf ]; then 44219019Sgabor cd /dev 45219019Sgabor while read action devicelist parameter; do 46219019Sgabor case "${action}" in 47219019Sgabor l*) for device in ${devicelist}; do 48219019Sgabor if [ ! -e ${parameter} ]; then 49219019Sgabor ln -fs ${device} ${parameter} 50219019Sgabor fi 51219019Sgabor done 52219019Sgabor ;; 53219019Sgabor o*) for device in ${devicelist}; do 54219019Sgabor if [ -c ${device} ]; then 55219019Sgabor chown ${parameter} ${device} 56219019Sgabor fi 57219019Sgabor done 58219019Sgabor ;; 59219019Sgabor p*) for device in ${devicelist}; do 60219019Sgabor if [ -c ${device} ]; then 61219019Sgabor chmod ${parameter} ${device} 62219019Sgabor fi 63219019Sgabor done 64219019Sgabor ;; 65219019Sgabor esac 66219019Sgabor done < /etc/devfs.conf 67219019Sgabor fi 68219019Sgabor} 69219019Sgabor 70219019Sgaborload_rc_config $name 71219019Sgaborrun_rc_command "$1" 72219019Sgabor