chiark / gitweb /
[PATCH] added RFC-dev.d document detailing how /etc/dev.d/ works.
authorgreg@kroah.com <greg@kroah.com>
Thu, 25 Mar 2004 07:11:08 +0000 (23:11 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:35:11 +0000 (21:35 -0700)
docs/RFC-dev.d [new file with mode: 0644]

diff --git a/docs/RFC-dev.d b/docs/RFC-dev.d
new file mode 100644 (file)
index 0000000..4985e84
--- /dev/null
@@ -0,0 +1,49 @@
+ /etc/dev.d/  How it works, and what it is for
+ by Greg Kroah-Hartman <greg@kroah.com> 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;
+
+