.\" Copyright (c) 2007, SUSE LINUX Products GmbH
.\"                     Bernhard Walle <bwalle@suse.de>
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License
.\" as published by the Free Software Foundation; either version 2
.\" of the License, or (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
.\" 02110-1301, USA.
.\"
.TH RTCWAKE 8 "June 2015" "util-linux" "System Administration"
.SH NAME
rtcwake \- enter a system sleep state until specified wakeup time
.SH SYNOPSIS
.B rtcwake
[options]
.RB [ \-d
.IR device ]
.RB [ \-m
.IR standby_mode ]
.RB { "\-s \fIseconds\fP" | "\-t \fItime_t\fP" }
.SH DESCRIPTION
This program is used to enter a system sleep state and to automatically
wake from it at a specified time.
.PP
This uses cross-platform Linux interfaces to enter a system sleep state, and
leave it no later than a specified time.  It uses any RTC framework driver that
supports standard driver model wakeup flags.
.PP
This is normally used like the old \fBapmsleep\fP utility, to wake from a suspend
state like ACPI S1 (standby) or S3 (suspend-to-RAM).  Most platforms can
implement those without analogues of BIOS, APM, or ACPI.
.PP
On some systems, this can also be used like \fBnvram-wakeup\fP, waking from states
like ACPI S4 (suspend to disk).  Not all systems have persistent media that are
appropriate for such suspend modes.
.PP
Note that alarm functionality depends on hardware; not every RTC is able to setup 
an alarm up to 24 hours in the future.
.SH OPTIONS
.TP
.BR \-A , " \-\-adjfile " \fIfile
Specify an alternative path to the adjust file.
.TP
.BR \-a , " \-\-auto"
Read the clock mode (whether the hardware clock is set to UTC or local time)
from the \fIadjtime\fP file, where
.BR hwclock (8)
stores that information.  This is the default.
.TP
.BR \-\-date " \fItimestamp"
Set the wakeup time to the value of the timestamp.  Format of the
timestmap can be any of the following:
.TS
tab(|);
left l2 l.
YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm|(seconds will be set to 00)
YYYY-MM-DD|(time will be set to 00:00:00)
hh:mm:ss|(date will be set to today)
hh:mm|(date will be set to today, seconds to 00)
tomorrow|(time is set to 00:00:00)
+5min
.TE
.TP
.BR \-d , " \-\-device " \fIdevice
Use the specified \fIdevice\fP instead of \fBrtc0\fP as realtime clock.
This option is only relevant if your system has more than one RTC.
You may specify \fBrtc1\fP, \fBrtc2\fP, ... here.
.TP
.BR \-l , " \-\-local"
Assume that the hardware clock is set to local time, regardless of the
contents of the \fIadjtime\fP file.
.TP
.B \-\-list\-modes
List available \-\-mode option arguments.
.TP
.BR \-m , " \-\-mode " \fImode
Go into the given standby state.  Valid values for \fImode\fP are:
.RS
.TP
.B standby
ACPI state S1.  This state offers minimal, though real, power savings, while
providing a very low-latency transition back to a working system.  This is the
default mode.
.TP
.B freeze
The processes are frozen, all the devices are suspended and all the processors
idled.  This state is a general state that does not need any platform-specific
support, but it saves less power than Suspend-to-RAM, because the system is
still in a running state.  (Available since Linux 3.9.)
.TP
.B mem
ACPI state S3 (Suspend-to-RAM).  This state offers significant power savings as
everything in the system is put into a low-power state, except for memory,
which is placed in self-refresh mode to retain its contents.
.TP
.B disk
ACPI state S4 (Suspend-to-disk).  This state offers the greatest power savings,
and can be used even in the absence of low-level platform support for power
management.  This state operates similarly to Suspend-to-RAM, but includes a
final step of writing memory contents to disk.
.TP
.B off
ACPI state S5 (Poweroff).  This is done by calling '/sbin/shutdown'.
Not officially supported by ACPI, but it usually works.
.TP
.B no
Don't suspend, only set the RTC wakeup time.
.TP
.B on
Don't suspend, but read the RTC device until an alarm time appears.
This mode is useful for debugging.
.TP
.B disable
Disable a previously set alarm.
.TP
.B show
Print alarm information in format: "alarm: off|on  <time>".
The time is in ctime() output format, e.g. "alarm: on  Tue Nov 16 04:48:45 2010".
.RE
.TP
.BR \-n , " \-\-dry-run"
This option does everything apart from actually setting up the alarm,
suspending the system, or waiting for the alarm.
.TP
.BR \-s , " \-\-seconds " \fIseconds
Set the wakeup time to \fIseconds\fP in the future from now.
.TP
.BR \-t , " \-\-time " \fItime_t
Set the wakeup time to the absolute time \fItime_t\fP.  \fItime_t\fP
is the time in seconds since 1970-01-01, 00:00 UTC.  Use the
.BR date (1)
tool to convert between human-readable time and \fItime_t\fP.
.TP
.BR \-u , " \-\-utc"
Assume that the hardware clock is set to UTC (Universal Time Coordinated),
regardless of the contents of the \fIadjtime\fP file.
.TP
.BR \-v , " \-\-verbose"
Be verbose.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.SH NOTES
Some PC systems can't currently exit sleep states such as \fBmem\fP
using only the kernel code accessed by this driver.
They need help from userspace code to make the framebuffer work again.
.SH FILES
.I @ADJTIME_PATH@
.SH HISTORY
The program was posted several times on LKML and other lists
before appearing in kernel commit message for Linux 2.6 in the GIT
commit 87ac84f42a7a580d0dd72ae31d6a5eb4bfe04c6d.
.SH AUTHORS
The program was written by David Brownell <dbrownell@users.sourceforge.net>
and improved by Bernhard Walle <bwalle@suse.de>.
.SH COPYRIGHT
This is free software.  You may redistribute copies of it under the terms
of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
.SH "SEE ALSO"
.BR hwclock (8),
.BR date (1)
.SH AVAILABILITY
The rtcwake command is part of the util-linux package and is available from the
.UR ftp://\:ftp.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
