</refnamediv>
<refsynopsisdiv>
- <para><filename>systemd.timer</filename></para>
+ <para><filename><replaceable>timer</replaceable>.timer</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>A unit configuration file whose name ends in
- <filename>.timer</filename> encodes information about
+ <literal>.timer</literal> encodes information about
a timer controlled and supervised by systemd, for
timer-based activation.</para>
combined of the same and of different
types. For example, by combining
<varname>OnBootSec=</varname> and
- <varname>OnUnitActiveSec=</varname> it is
+ <varname>OnUnitActiveSec=</varname>, it is
possible to define a timer that
elapses in regular intervals and
activates a specific service each
also include time units. Example:
"OnBootSec=5h 30min" means 5 hours and
30 minutes after boot-up. For details
- about the syntax of time spans see
+ about the syntax of time spans, see
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>If a timer configured with
monotonic clock stops too.</para>
<para>If the empty string is assigned
- to any of these options the list of
+ to any of these options, the list of
timers is reset, and all prior
assignments will have no
- effect.</para></listitem>
+ effect.</para>
+
+ <para>Note that timers do not
+ necessarily expire at the precise
+ time configured with these settings,
+ as they are subject to the
+ <varname>AccuracySec=</varname>
+ setting below.</para></listitem>
</varlistentry>
<term><varname>OnCalendar=</varname></term>
<listitem><para>Defines realtime
- (i.e. wallclock) timers via calendar
+ (i.e. wallclock) timers with calendar
event expressions. See
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more information on the syntax of
- calendar event expressions. Otherwise
+ calendar event expressions. Otherwise,
the semantics are similar to
<varname>OnActiveSec=</varname> and
- related settings.</para></listitem>
+ related settings.</para>
+
+ <para>Note that timers do not
+ necessarily expire at the precise
+ time configured with this setting,
+ as it is subject to the
+ <varname>AccuracySec=</varname>
+ setting below.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>AccuracySec=</varname></term>
+
+ <listitem><para>Specify the accuracy
+ the timer shall elapse with. Defaults
+ to 1min. The timer is scheduled to
+ elapse within a time window starting
+ with the time specified in
+ <varname>OnCalendar=</varname>,
+ <varname>OnActiveSec=</varname>,
+ <varname>OnBootSec=</varname>,
+ <varname>OnStartupSec=</varname>,
+ <varname>OnUnitActiveSec=</varname> or
+ <varname>OnUnitInactiveSec=</varname>
+ and ending the time configured with
+ <varname>AccuracySec=</varname>
+ later. Within this time window, the
+ expiry time will be placed at a
+ host-specific, randomized but stable
+ position that is synchronized between
+ all local timer units. This is done in
+ order to distribute the wake-up time
+ in networked installations, as well as
+ optimizing power consumption to
+ suppress unnecessary CPU wake-ups. To
+ get best accuracy, set this option to
+ 1us. Note that the timer is still
+ subject to the timer slack configured
+ via
+ <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>'s
+ <varname>TimerSlackNSec=</varname>
+ setting. See
+ <citerefentry><refentrytitle>prctl</refentrytitle><manvolnum>2</manvolnum></citerefentry>
+ for details. To optimize power
+ consumption, make sure to set this
+ value as high as possible and as low
+ as necessary.</para></listitem>
+ </varlistentry>
<varlistentry>
<term><varname>Unit=</varname></term>
<listitem><para>The unit to activate
when this timer elapses. The argument is a
unit name, whose suffix is not
- <filename>.timer</filename>. If not
+ <literal>.timer</literal>. If not
specified, this value defaults to a
service that has the same name as the
timer unit, except for the
are named identically, except for the
suffix.</para></listitem>
</varlistentry>
+
+
+ <varlistentry>
+ <term><varname>Persistent=</varname></term>
+
+ <listitem><para>Takes a boolean
+ argument. If true the service unit is
+ immediately triggered when the timer
+ unit is activated and the timer
+ elapsed at least once since the last
+ time the service unit has been
+ triggered by the timer unit. The time
+ when the service unit was last
+ triggered is stored on disk. This is
+ useful to catch up for missed timers
+ when a machine is shutdown temporarily
+ and then is powered up again. Note
+ that this setting only has an effect
+ on timers configured with
+ <varname>OnCalendar=</varname>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>WakeSystem=</varname></term>
+
+ <listitem><para>Takes a boolean
+ argument. If true an elapsing timer
+ will cause the system to resume from
+ suspend, should it be suspended and if
+ the system supports this. Note that
+ this option will only make sure the
+ system resumes on the appropriate
+ times, it will not take care of
+ suspending it again after any work
+ that is to be done is
+ finished. Defaults to
+ <varname>false</varname>.</para></listitem>
+ </varlistentry>
</variablelist>
</refsect1>
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>prctl</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>