devfs revision 154637
1179339Syongari#!/bin/sh 2179339Syongari# 3179339Syongari# $FreeBSD: head/etc/rc.d/devfs 154637 2006-01-21 14:31:45Z matteo $ 4179339Syongari# 5179339Syongari 6179339Syongari# PROVIDE: devfs 7179339Syongari# REQUIRE: mountcritremote 8179339Syongari# BEFORE: SERVERS securelevel 9179339Syongari# KEYWORD: nojail 10179339Syongari 11179339Syongari. /etc/rc.subr 12179339Syongari 13179339Syongariname="devfs" 14179339Syongaristart_cmd='devfs_start' 15179339Syongaristop_cmd=':' 16179339Syongari 17179339Syongaridevfs_start() 18179339Syongari{ 19179339Syongari if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ]; then 20179339Syongari devfs_init_rulesets 21179339Syongari if [ -n "$devfs_system_ruleset" ]; then 22179339Syongari devfs_set_ruleset $devfs_system_ruleset /dev 23179339Syongari devfs_apply_ruleset $devfs_system_ruleset /dev 24179339Syongari fi 25179339Syongari if [ -n "$devfs_set_rulesets" ]; then 26179339Syongari local _dir_set 27232496Seadler local _dir 28179339Syongari local _set 29179339Syongari for _dir_set in $devfs_set_rulesets; do 30179339Syongari _dir=${_dir_set%=*} 31179339Syongari _set=${_dir_set#*=} 32179339Syongari devfs_set_ruleset $_set $_dir 33179339Syongari devfs_apply_ruleset $_set $_dir 34179339Syongari done 35179339Syongari fi 36179339Syongari fi 37179339Syongari read_devfs_conf 38179339Syongari} 39179339Syongari 40179339Syongariread_devfs_conf() 41179339Syongari{ 42179339Syongari if [ -r /etc/devfs.conf ]; then 43179339Syongari cd /dev 44179339Syongari while read action devicelist parameter; do 45179339Syongari case "${action}" in 46179339Syongari l*) for device in ${devicelist}; do 47179339Syongari if [ -c ${device} -a ! -e ${parameter} ]; then 48179339Syongari ln -fs ${device} ${parameter} 49179339Syongari fi 50179339Syongari done 51216552Syongari ;; 52216552Syongari o*) for device in ${devicelist}; do 53179339Syongari if [ -c ${device} ]; then 54179339Syongari chown ${parameter} ${device} 55179339Syongari fi 56179339Syongari done 57179339Syongari ;; 58179339Syongari p*) for device in ${devicelist}; do 59179339Syongari if [ -c ${device} ]; then 60179339Syongari chmod ${parameter} ${device} 61179339Syongari fi 62216552Syongari done 63179339Syongari ;; 64179339Syongari esac 65179339Syongari done < /etc/devfs.conf 66179339Syongari fi 67179339Syongari} 68179339Syongari 69179339Syongariload_rc_config $name 70179339Syongarirun_rc_command "$1" 71179339Syongari