X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=etc%2Finit.d%2Fudev;h=0d26d070835825f3c4abdae93f524b0fcbda62b8;hp=36ef2dafda2231b73d1379f6a4cb8264c4b369a2;hb=18c783a7e6acab9590980a54978a129f7b3dca81;hpb=5a3ee97760a8882e22435ca6424c54af8d8782be diff --git a/etc/init.d/udev b/etc/init.d/udev index 36ef2dafd..0d26d0708 100644 --- a/etc/init.d/udev +++ b/etc/init.d/udev @@ -11,30 +11,18 @@ udev_dir=/udev sysfs_dir=/sys bin=/sbin/udev -case "$1" in - start) - if [ ! -d $udev_dir ]; then - mkdir $udev_dir - fi - if [ ! -d $sysfs_dir ]; then - exit 1 - fi - # propogate /udev from /sys - we only need this while we do not - # have initramfs and an early user-space with which to do early - # device bring up - action "Creating initial udev device nodes: " /bin/true - export ACTION=add - # add block devices and their partitions +run_udev () { + # handle block devices and their partitions for i in ${sysfs_dir}/block/*; do # add each drive export DEVPATH=${i#${sysfs_dir}} - $bin block + $bin block & # add each partition, on each device for j in $i/*; do if [ -f $j/dev ]; then export DEVPATH=${j#${sysfs_dir}} - $bin block + $bin block & fi done done @@ -45,17 +33,33 @@ case "$1" in export DEVPATH=${j#${sysfs_dir}} CLASS=`echo ${i#${sysfs_dir}} | \ cut --delimiter='/' --fields=3-` - $bin $CLASS + $bin $CLASS & fi done done +} + + +case "$1" in + start) + if [ ! -d $udev_dir ]; then + mkdir $udev_dir + fi + if [ ! -d $sysfs_dir ]; then + exit 1 + fi + # propogate /udev from /sys - we only need this while we do not + # have initramfs and an early user-space with which to do early + # device bring up + action "Creating initial udev device nodes: " /bin/true + export ACTION=add + run_udev ;; stop) # be careful - if [ $udev_dir -a "$udev_dir" != "/" ]; then - # clear out /udev - rm -rf ${udev_dir}/* - fi + action "Removing udev device nodes: " /bin/true + export ACTION=remove + run_udev ;; status) if [ -d $udev_dir ]; then