From 6524990fdc98370ecba5d9f73e67161e8798c010 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 28 Oct 2012 00:49:04 +0200 Subject: logind: support for hybrid sleep (i.e. suspend+hibernate at the same time) --- man/logind.conf.xml | 5 +++-- man/systemctl.xml | 5 +++++ man/systemd-suspend.service.xml | 42 +++++++++++++++++++++++++---------------- man/systemd.special.xml | 15 ++++++++++++--- 4 files changed, 46 insertions(+), 21 deletions(-) (limited to 'man') diff --git a/man/logind.conf.xml b/man/logind.conf.xml index 3d83d2c81c..29469d37e1 100644 --- a/man/logind.conf.xml +++ b/man/logind.conf.xml @@ -211,8 +211,9 @@ poweroff, reboot, halt, - kexec and - hibernate. If + kexec, + hibernate and + hybrid-sleep. If ignore logind will never handle these keys. Otherwise the specified action will be taken in the diff --git a/man/systemctl.xml b/man/systemctl.xml index d547410696..786c2bdfcf 100644 --- a/man/systemctl.xml +++ b/man/systemctl.xml @@ -1180,6 +1180,11 @@ Hibernate the system. + + hybrid-sleep + + Hibernate and suspend the system. + switch-root [ROOT] [INIT] diff --git a/man/systemd-suspend.service.xml b/man/systemd-suspend.service.xml index 604aab6f6b..b9464c8826 100644 --- a/man/systemd-suspend.service.xml +++ b/man/systemd-suspend.service.xml @@ -45,6 +45,7 @@ systemd-suspend.service systemd-hibernate.service + systemd-hybrid-sleep.service systemd-sleep System sleep state logic @@ -52,6 +53,7 @@ systemd-suspend.service systemd-hibernate.service + systemd-hybrid-sleep.service /usr/lib/systemd/systemd-sleep @@ -64,19 +66,25 @@ for the actual system suspend. Similar, systemd-hibernate.service is pulled in by hibernate.target to - execute the actual hibernation. - - Immediately before entering system suspend and - hibernation - systemd-suspend.service will run - all executables in + execute the actual hibernation. Finally, + systemd-hybrid-sleep.service is + pulled in by hybrid-sleep.target + to execute hybrid hibernation with system + suspend. + + Immediately before entering system suspend + and/or hibernation + systemd-suspend.service (and the + other mentioned units, respectively) will run all + executables in /usr/lib/systemd/system-sleep/ and pass two arguments to them. The first argument will be "pre", the second either - "suspend" or - "hibernate", depending on the + "suspend", + "hibernate", or + "hybrid-sleep" depending on the chosen action. Immediately after leaving system - suspend and hibernation the same executables are run, + suspend and/or hibernation the same executables are run, but the first argument is now "post". All executables in this directory are executed in parallel, and execution of @@ -87,15 +95,17 @@ /usr/lib/systemd/system-sleep/ are intended for local use only and should be considered hacks. If applications want to be notified - of system suspend and resume there are much nicer - interfaces available. + of system suspend/hibernation and resume there are + much nicer interfaces available. Note that - systemd-suspend.service and - systemd-hibernate.service should - never be executed directly. Instead, trigger system - sleep states with a command such as "systemctl - suspend" or suchlike. + systemd-suspend.service, + systemd-hibernate.service and + systemd-hybrid-sleep.service + should never be executed directly. Instead, trigger + system sleep states with a command such as + "systemctl suspend" or + similar. diff --git a/man/systemd.special.xml b/man/systemd.special.xml index 3e5f653494..6b8e0ec7f0 100644 --- a/man/systemd.special.xml +++ b/man/systemd.special.xml @@ -63,6 +63,7 @@ graphical.target, hibernate.target, http-daemon.target, + hybrid-sleep.target, halt.target, kbrequest.target, kexec.target, @@ -302,6 +303,15 @@ facility. + + hybrid-sleep.target + + A special target unit + for hibernating and suspending the + system at the same time. This pulls in + sleep.target. + + halt.target @@ -652,9 +662,8 @@ A special target unit that is pulled in by - suspend.target - and - hibernate.target + suspend.target, + hibernate.target and hybrid-sleep.target and may be used to hook units into the sleep state logic. -- cgit v1.2.3-54-g00ecf