#!/bin/sh PATH="/sbin:/bin" case "$1" in start) # disable hotplug helper, udevd listens to netlink echo "" > /proc/sys/kernel/hotplug # mount tmpfs on /dev if ! grep -E -q "^[^[:space:]]+ /dev tmpfs" /proc/mounts; then # umount shm if needed if grep -E -q "^[^[:space:]]+ /dev/shm tmpfs" /proc/mounts; then umount -l /dev/shm fi # umount pts if needed, will remount it if grep -E -q "^[^[:space:]]+ /dev/pts devpts" /proc/mounts; then umount -l /dev/pts fi # mount tmpfs on /dev mount -n -o mode=0777 -t tmpfs tmpfs /dev # we are on tmpfs anyway mkdir -m777 /dev/shm # remount pts mkdir /dev/pts mount -n -o mode=0620,gid=5 -t devpts devpts /dev/pts fi # populate initial /dev with the static nodes cp --preserve=all --recursive --remove-destination /lib/udev/devices/* /dev # start udevd echo "Starting udevd: /sbin/udevd --daemon" /sbin/udevd --daemon # generate events with the sysfs trigger echo -e '\E[36m'"\033[1mPerforming Coldplugging\033[0m" mkdir -p /dev/.udev/queue # Much more fast than all old shell script code /sbin/udevtrigger && /sbin/udevsettle ;; stop) echo "Stopping udevd" echo "/sbin/hotplug" > /proc/sys/kernel/hotplug killall udevd ;; restart) echo "Restarting udevd" killall udevd sleep 5 udevd --daemon ;; reload) echo "Reloading udev rules" udevcontrol reload_rules cp --preserve=all --recursive --update /lib/udev/devices/* /dev ;; force-reload) echo "Updating all available device nodes in /dev" udevcontrol reload_rules rm -rf /dev/.udev /dev/disk cp --preserve=all --recursive --update /lib/udev/devices/* /dev ;; *) echo "Usage: $0 {start|stop|restart|reload|force-reload}" exit 1 ;; esac