. /etc/rc.d/init.d/functions
-udev_dir=/udev
+. /etc/udev/udev.conf
+
+prog=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}}
fi
done
done
+ return 0
+}
+
+case "$1" in
+ start)
+ if [ ! -d $sysfs_dir ]; then
+ exit 1
+ fi
+ if [ ! -d $udev_root ]; then
+ mkdir $udev_root
+ fi
+
+ # remove the database if it is there as we always want to start fresh
+ if [ -f $udev_root/.udev.tdb ]; then
+ rm -f $udev_root/.udev.tdb
+ 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
+ export ACTION=add
+ echo -n $"Creating initial udev device nodes:"
+ run_udev
+ success /bin/true
+ echo
+ touch /var/lock/subsys/udev
;;
stop)
# be careful
- action "Removing udev device nodes: " /bin/true
- if [ $udev_dir -a "$udev_dir" != "/" ]; then
- # clear out /udev
- rm -rf ${udev_dir}/*
- fi
+ echo -n $"Removing udev device nodes: "
+ export ACTION=remove
+ run_udev
+ success /bin/true
+ echo
+ rm -f /var/lock/subsys/udev
;;
status)
- if [ -d $udev_dir ]; then
- echo "the udev device node directory exists"
- else
- echo "the udev device node directory does not exist"
+ if [ -f /var/lock/subsys/udev ]; then
+ echo $"$prog has run"
+ exit 0
fi
+ echo $"$prog is stopped"
+ exit 3
;;
restart)
$0 stop