summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2006-04-27 18:52:47 +0000
committerPeter Jones <pjones@redhat.com>2006-04-27 18:52:47 +0000
commitf4d24f06dd905563f628b11155c8244f8639e328 (patch)
tree14f56cdc0cc125a38a7e091cc0d260658094b897 /README
parent3a3d1ba965163a5ede3329973e458a09e105a155 (diff)
- allow for /etc/pm/config.d/
Diffstat (limited to 'README')
-rw-r--r--README27
1 files changed, 27 insertions, 0 deletions
diff --git a/README b/README
index c18a3a4..9feb842 100644
--- a/README
+++ b/README
@@ -23,3 +23,30 @@ file into the hooks directory, for example:
- removing and modprobing modules when needed
- setting grub to be the default target for a hibernate-resume
- other wacky things that need doing on specific systems
+
+How do "hooks" work?
+
+* You put a file in /etc/pm/hooks, which is executable. When suspend or
+ hibernate is called, several things happen:
+
+ 1) a new virtual terminal is alloced and switched to
+ 2) /etc/pm/config is evaluated . This config file that should only be
+ modified by end-users.
+ 3) /etc/pm/config.d/* are evaluated in C sort order. These files can be
+ provided by individual packages outside of pm-utils. If a global config
+ variable is set, the value set to will be appended to the previous value.
+ If any other variable is set, it will be ignored.
+ 4) each of /etc/pm/hooks/* are executed in C sort order. The first command
+ line argument is "suspend" or "hibernate". These files may source
+ configuration files from /etc/pm/config.d/ on their own in order to pick
+ up variables set there that aren't part of the global list. Note that
+ hooks should take care to preserve any global configuration variable
+ which _that_ hook will later need to use, as sourcing this config file
+ will clobber any such variables.
+ 5) the system suspends or hibernates.
+ 6) some event happens to wake the machine up
+ 7) each of /etc/pm/hooks/* are executed in reverse C sort order. The first
+ command line argument is "resume" or "thaw".
+ 8) the system switches back to the original virtual terminal from step 1.
+
+ That's it!