From: greg@kroah.com Date: Thu, 25 Mar 2004 07:11:08 +0000 (-0800) Subject: [PATCH] added RFC-dev.d document detailing how /etc/dev.d/ works. X-Git-Tag: 023~4 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=3e33961b4557f9b709c901b4aa77dfe0220222bd;ds=sidebyside [PATCH] added RFC-dev.d document detailing how /etc/dev.d/ works. --- diff --git a/docs/RFC-dev.d b/docs/RFC-dev.d new file mode 100644 index 000000000..4985e841b --- /dev/null +++ b/docs/RFC-dev.d @@ -0,0 +1,49 @@ + /etc/dev.d/ How it works, and what it is for + + by Greg Kroah-Hartman March 2004 + +The /etc/dev.d directory works much like the /etc/hotplug.d/ directory +in that it is a place to put symlinks or programs that get called when +an event happens in the system. Programs will get called whenever the +device naming program in the system has either named a new device and +created a /dev node for it, or when a /dev node has been removed from +the system due to a device being removed. + +The directory tree under /etc/dev.d/ dictate which program is run first, +and when some programs will be run or not. The device naming program +calls the programs in the following order: + /etc/dev.d/DEVNODE/*.dev + /etc/dev.d/SUBSYSTEM/*.dev + /etc/dev.d/default/*.dev + +The .dev extension is needed to allow automatic package managers to +deposit backup files in these directories safely. + +The DEVNODE name is the name of the /dev file that has been created. +This value, including the /dev path, will also be exported to userspace +in the DEVNODE environment variable. + +The SUBSYSTEM name is the name of the sysfs subsystem that originally +generated the hotplug event that caused the device naming program to +create or remove the /dev node originally. This value is passed to +userspace as the first argument to the program. + +The default directory will always be run, to enable programs to catch +every device add and remove in a single place. + +All environment variables that were originally passed by the hotplug +call that caused this device action will also be passed to the program +called in the /etc/dev.d/ directories. Examples of these variables are +ACTION, DEVPATH, and others. See the hotplug documentation for full +description of this + +An equivalent shell script that would do this same kind of action would +be: + DIR="/etc/dev.d" + export DEVNODE="whatever_dev_name_udev_just_gave" + for I in "${DIR}/$DEVNODE/"*.dev "${DIR}/$1/"*.dev "${DIR}/default/"*.dev ; do + if [ -f $I ]; then $I $1 ; fi + done + exit 1; + +