This file is part of systemd.
Copyright 2012 Lennart Poettering
+ Copyright 2013 Zbigniew Jędrzejewski-Szmek
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-suspend.service">
+<refentry id="systemd-suspend.service"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-suspend.service</title>
<refnamediv>
<refname>systemd-suspend.service</refname>
<refname>systemd-hibernate.service</refname>
+ <refname>systemd-hybrid-sleep.service</refname>
<refname>systemd-sleep</refname>
<refpurpose>System sleep state logic</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-suspend.service</filename></para>
<para><filename>systemd-hibernate.service</filename></para>
+ <para><filename>systemd-hybrid-sleep.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-sleep</filename></para>
</refsynopsisdiv>
<para><filename>systemd-suspend.service</filename> is
a system service that is pulled in by
<filename>suspend.target</filename> and is responsible
- for the actual system suspend. Similar,
+ for the actual system suspend. Similarly,
<filename>systemd-hibernate.service</filename> is
pulled in by <filename>hibernate.target</filename> to
- execute the actual hibernation.</para>
-
- <para>Immediately before entering system suspend and
- hibernation
- <filename>systemd-suspend.service</filename> will run
- all executables in
+ execute the actual hibernation. Finally,
+ <filename>systemd-hybrid-sleep.service</filename> is
+ pulled in by <filename>hybrid-sleep.target</filename>
+ to execute hybrid hibernation with system
+ suspend.</para>
+
+ <para>Immediately before entering system suspend
+ and/or hibernation
+ <filename>systemd-suspend.service</filename> (and the
+ other mentioned units, respectively) will run all
+ executables in
<filename>/usr/lib/systemd/system-sleep/</filename>
and pass two arguments to them. The first argument
- will be "<literal>pre</literal>", the second either
- "<literal>suspend</literal>" or
- "<literal>hibernate</literal>", depending on the
+ will be <literal>pre</literal>, the second either
+ <literal>suspend</literal>,
+ <literal>hibernate</literal>, or
+ <literal>hybrid-sleep</literal> 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
- "<literal>post</literal>". All executables in this
+ <literal>post</literal>. All executables in this
directory are executed in parallel, and execution of
- the action is not continued before all executables
- finished.</para>
+ the action is not continued until all executables
+ have finished.</para>
<para>Note that scripts or binaries dropped in
<filename>/usr/lib/systemd/system-sleep/</filename>
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.</para>
+ of system suspend/hibernation and resume, there are
+ much nicer interfaces available.</para>
<para>Note that
- <filename>systemd-suspend.service</filename> and
- <filename>systemd-hibernate.service</filename> should
- never be executed directly. Instead, trigger system
- sleep states with a command such as "<literal>systemctl
- suspend</literal>" or suchlike.</para>
+ <filename>systemd-suspend.service</filename>,
+ <filename>systemd-hibernate.service</filename>, and
+ <filename>systemd-hybrid-sleep.service</filename>
+ should never be executed directly. Instead, trigger
+ system sleep states with a command such as
+ <literal>systemctl suspend</literal> or
+ similar.</para>
+
+ <para>Internally, this service will echo a string like
+ <literal>mem</literal> into
+ <filename>/sys/power/state</filename>, to trigger the
+ actual system suspend. What exactly is written
+ where can be configured in the <literal>[Sleep]</literal>
+ section of <filename>/etc/systemd/sleep.conf</filename>.
+ See <citerefentry><refentrytitle>systemd-sleep.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para><command>systemd-sleep</command> understands the
+ following commands:</para>
+
+ <variablelist>
+ <xi:include href="standard-options.xml" xpointer="help" />
+ <xi:include href="standard-options.xml" xpointer="version" />
+
+ <varlistentry>
+ <term><option>suspend</option></term>
+ <term><option>hibernate</option></term>
+ <term><option>hybrid-sleep</option></term>
+
+ <listitem><para>Suspend, hibernate, or
+ put the system to hybrid sleep.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
+ <citerefentry><refentrytitle>systemd-sleep.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,