Advertisement
Guest User

Untitled

a guest
Sep 18th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.42 KB | None | 0 0
  1. #!/bin/sh
  2. #
  3. # $FreeBSD$
  4. #
  5.  
  6. # PROVIDE: devfs
  7. # REQUIRE: mountcritremote
  8. # BEFORE:  SERVERS securelevel
  9. # KEYWORD: nojail
  10.  
  11. . /etc/rc.subr
  12.  
  13. name="devfs"
  14. start_cmd='devfs_start'
  15. stop_cmd=':'
  16.  
  17. devfs_start()
  18. {
  19.         if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ] ||
  20.             checkyesno devfs_load_rulesets; then
  21.                 devfs_init_rulesets
  22.                 if [ -n "$devfs_system_ruleset" ]; then
  23.                         devfs_set_ruleset $devfs_system_ruleset /dev
  24.                         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.  
  41. read_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}
  50. ${parameter}
  51.                                         fi
  52.                                 done
  53.                                 ;;
  54.                         o*)     for device in ${devicelist}; do
  55.                                         if [ -c ${device} ]; then
  56.                                                 chown ${parameter}
  57. ${device}
  58.                                         fi
  59.                                 done
  60.                                 ;;
  61.                         p*)     for device in ${devicelist}; do
  62.                                         if [ -c ${device} ]; then
  63.                                                 chmod ${parameter}
  64. ${device}
  65.                                         fi
  66.                                 done
  67.                                 ;;
  68.                         esac
  69.                 done < /etc/devfs.conf
  70.         fi
  71. }
  72.  
  73. load_rc_config $name
  74. run_rc_command "$1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement