1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
'\" t
.TH "SYSTEMD\-SUSPEND\&.SERVICE" "8" "" "systemd 254" "systemd-suspend.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-suspend-then-hibernate.service, systemd-sleep \- System sleep state logic
.SH "SYNOPSIS"
.PP
systemd\-suspend\&.service
.PP
systemd\-hibernate\&.service
.PP
systemd\-hybrid\-sleep\&.service
.PP
systemd\-suspend\-then\-hibernate\&.service
.PP
/lib/systemd/system\-sleep
.SH "DESCRIPTION"
.PP
systemd\-suspend\&.service
is a system service that is pulled in by
suspend\&.target
and is responsible for the actual system suspend\&. Similarly,
systemd\-hibernate\&.service
is pulled in by
hibernate\&.target
to execute the actual hibernation\&. Finally,
systemd\-hybrid\-sleep\&.service
is pulled in by
hybrid\-sleep\&.target
to execute hybrid hibernation with system suspend and pulled in by
suspend\-then\-hibernate\&.target
to execute system suspend with a timeout that will activate hibernate later\&.
.PP
Immediately before entering system suspend and/or hibernation
systemd\-suspend\&.service
(and the other mentioned units, respectively) will run all executables in
/lib/systemd/system\-sleep/
and pass two arguments to them\&. The first argument will be
"pre", the second either
"suspend",
"hibernate",
"hybrid\-sleep", or
"suspend\-then\-hibernate"
depending on the chosen action\&. An environment variable called
"SYSTEMD_SLEEP_ACTION"
will be set and contain the sleep action that is processing\&. This is primarily helpful for
"suspend\-then\-hibernate"
where the value of the variable will be
"suspend",
"hibernate", or
"suspend\-after\-failed\-hibernate"
in cases where hibernation has failed\&. Immediately after leaving system 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 the action is not continued until all executables have finished\&.
.PP
Note that scripts or binaries dropped in
/lib/systemd/system\-sleep/
are intended for local use only and should be considered hacks\&. If applications want to react to system suspend/hibernation and resume, they should rather use the
\m[blue]\fBInhibitor interface\fR\m[]\&\s-2\u[1]\d\s+2\&.
.PP
Note that
systemd\-suspend\&.service,
systemd\-hibernate\&.service,
systemd\-hybrid\-sleep\&.service, and
systemd\-suspend\-then\-hibernate\&.service
should never be executed directly\&. Instead, trigger system sleep with a command such as
\fBsystemctl suspend\fR
or
\fBsystemctl hibernate\fR\&.
.PP
Internally, this service will echo a string like
"mem"
into
/sys/power/state, to trigger the actual system suspend\&. What exactly is written where can be configured in the [Sleep] section of
/etc/systemd/sleep\&.conf
or a
sleep\&.conf\&.d
file\&. See
\fBsystemd-sleep.conf\fR(5)\&.
.SH "OPTIONS"
.PP
\fBsystemd\-sleep\fR
understands the following commands:
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.PP
\fB\-\-version\fR
.RS 4
Print a short version string and exit\&.
.RE
.PP
\fBsuspend\fR, \fBhibernate\fR, \fBsuspend\-then\-hibernate\fR, \fBhybrid\-sleep\fR
.RS 4
Suspend, hibernate, suspend then hibernate, or put the system to hybrid sleep\&.
.RE
.SH "SEE ALSO"
.PP
\fBsystemd-sleep.conf\fR(5),
\fBsystemd\fR(1),
\fBsystemctl\fR(1),
\fBsystemd.special\fR(7),
\fBsystemd-halt.service\fR(8)
.SH "NOTES"
.IP " 1." 4
Inhibitor interface
.RS 4
\%https://www.freedesktop.org/wiki/Software/systemd/inhibit
.RE
|