1129470Spjd#!/bin/sh 2129470Spjd# 3265420Simp# 4156813Sru 5163048Sru# PROVIDE: devfs 6163048Sru# REQUIRE: mountcritremote 7156813Sru# BEFORE: SERVERS securelevel 8148464Spjd# KEYWORD: nojail 9148649Sru 10163851Spjd. /etc/rc.subr 11131476Spjd 12132905Spjdname="devfs" 13202437Straszdesc="Device filesystem" 14167050Smjacobstart_cmd='devfs_start' 15129470Spjdstop_cmd=':' 16169586Smarcel 17219974Smavdevfs_start() 18133812Spjd{ 19206497Sluigi if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ] || 20140075Spjd checkyesno devfs_load_rulesets; then 21129470Spjd devfs_init_rulesets 22172302Spjd if [ -n "$devfs_system_ruleset" ]; then 23129470Spjd devfs_set_ruleset $devfs_system_ruleset /dev 24129470Spjd devfs_apply_ruleset $devfs_system_ruleset /dev 25 fi 26 if [ -n "$devfs_set_rulesets" ]; then 27 local _dir_set 28 local _dir 29 local _set 30 for _dir_set in $devfs_set_rulesets; do 31 _dir=${_dir_set%=*} 32 _set=${_dir_set#*=} 33 devfs_set_ruleset $_set $_dir 34 devfs_apply_ruleset $_set $_dir 35 done 36 fi 37 fi 38 read_devfs_conf 39} 40 41read_devfs_conf() 42{ 43 if [ -r /etc/devfs.conf ]; then 44 cd /dev 45 while read action devicelist parameter; do 46 case "${action}" in 47 l*) for device in ${devicelist}; do 48 if [ ! -e ${parameter} ]; then 49 ln -fs ${device} ${parameter} 50 fi 51 done 52 ;; 53 o*) for device in ${devicelist}; do 54 if [ -c ${device} ]; then 55 chown ${parameter} ${device} 56 fi 57 done 58 ;; 59 p*) for device in ${devicelist}; do 60 if [ -c ${device} ]; then 61 chmod ${parameter} ${device} 62 fi 63 done 64 ;; 65 esac 66 done < /etc/devfs.conf 67 fi 68} 69 70load_rc_config $name 71 72# doesn't make sense to run in a svcj: may need more permissions 73devfs_svcj="NO" 74 75run_rc_command "$1" 76