2010-07-02 08:14:13 +08:00
|
|
|
<?xml version='1.0'?> <!--*-nxml-*-->
|
|
|
|
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
|
|
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
|
|
|
|
|
|
<!--
|
|
|
|
This file is part of systemd.
|
|
|
|
|
|
|
|
Copyright 2010 Lennart Poettering
|
|
|
|
|
|
|
|
systemd is free software; you can redistribute it and/or modify it
|
2012-04-12 06:20:58 +08:00
|
|
|
under the terms of the GNU Lesser General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2.1 of the License, or
|
2010-07-02 08:14:13 +08:00
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
systemd 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
|
2012-04-12 06:20:58 +08:00
|
|
|
Lesser General Public License for more details.
|
2010-07-02 08:14:13 +08:00
|
|
|
|
2012-04-12 06:20:58 +08:00
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
2010-07-02 08:14:13 +08:00
|
|
|
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<refentry id="systemd.timer">
|
|
|
|
<refentryinfo>
|
|
|
|
<title>systemd.timer</title>
|
|
|
|
<productname>systemd</productname>
|
|
|
|
|
|
|
|
<authorgroup>
|
|
|
|
<author>
|
|
|
|
<contrib>Developer</contrib>
|
|
|
|
<firstname>Lennart</firstname>
|
|
|
|
<surname>Poettering</surname>
|
|
|
|
<email>lennart@poettering.net</email>
|
|
|
|
</author>
|
|
|
|
</authorgroup>
|
|
|
|
</refentryinfo>
|
|
|
|
|
|
|
|
<refmeta>
|
|
|
|
<refentrytitle>systemd.timer</refentrytitle>
|
|
|
|
<manvolnum>5</manvolnum>
|
|
|
|
</refmeta>
|
|
|
|
|
|
|
|
<refnamediv>
|
|
|
|
<refname>systemd.timer</refname>
|
2012-07-17 00:08:25 +08:00
|
|
|
<refpurpose>Timer unit configuration</refpurpose>
|
2010-07-02 08:14:13 +08:00
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
<refsynopsisdiv>
|
2013-02-14 11:46:37 +08:00
|
|
|
<para><filename><replaceable>timer</replaceable>.timer</filename></para>
|
2010-07-02 08:14:13 +08:00
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para>A unit configuration file whose name ends in
|
2013-07-12 11:39:27 +08:00
|
|
|
<literal>.timer</literal> encodes information about
|
2010-07-02 08:14:13 +08:00
|
|
|
a timer controlled and supervised by systemd, for
|
|
|
|
timer-based activation.</para>
|
|
|
|
|
|
|
|
<para>This man page lists the configuration options
|
|
|
|
specific to this unit type. See
|
|
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
|
|
for the common options of all unit configuration
|
|
|
|
files. The common configuration items are configured
|
|
|
|
in the generic [Unit] and [Install] sections. The
|
|
|
|
timer specific configuration options are configured in
|
|
|
|
the [Timer] section.</para>
|
|
|
|
|
2010-07-02 15:51:25 +08:00
|
|
|
<para>For each timer file, a matching unit file must
|
2010-07-02 08:14:13 +08:00
|
|
|
exist, describing the unit to activate when the timer
|
2010-07-02 15:51:25 +08:00
|
|
|
elapses. By default, a service by the same name as the
|
2010-07-02 08:14:13 +08:00
|
|
|
timer (except for the suffix) is activated. Example: a
|
|
|
|
timer file <filename>foo.timer</filename> activates a
|
|
|
|
matching service <filename>foo.service</filename>. The
|
|
|
|
unit to activate may be controlled by
|
|
|
|
<varname>Unit=</varname> (see below).</para>
|
2010-07-04 01:54:00 +08:00
|
|
|
|
|
|
|
<para>Unless <varname>DefaultDependencies=</varname>
|
|
|
|
is set to <option>false</option>, timer units will
|
|
|
|
implicitly have dependencies of type
|
|
|
|
<varname>Conflicts=</varname> and
|
|
|
|
<varname>Before=</varname> on
|
|
|
|
<filename>shutdown.target</filename>. These ensure
|
|
|
|
that timer units are stopped cleanly prior to system
|
|
|
|
shutdown. Only timer units involved with early boot or
|
|
|
|
late system shutdown should disable this
|
|
|
|
option.</para>
|
2010-07-02 08:14:13 +08:00
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Options</title>
|
|
|
|
|
|
|
|
<para>Timer files must include a [Timer] section,
|
|
|
|
which carries information about the timer it
|
|
|
|
defines. The options specific to the [Timer] section
|
|
|
|
of timer units are the following:</para>
|
|
|
|
|
2013-01-26 23:47:16 +08:00
|
|
|
<variablelist class='unit-directives'>
|
2010-07-02 08:14:13 +08:00
|
|
|
<varlistentry>
|
2010-07-05 03:12:10 +08:00
|
|
|
<term><varname>OnActiveSec=</varname></term>
|
|
|
|
<term><varname>OnBootSec=</varname></term>
|
|
|
|
<term><varname>OnStartupSec=</varname></term>
|
|
|
|
<term><varname>OnUnitActiveSec=</varname></term>
|
|
|
|
<term><varname>OnUnitInactiveSec=</varname></term>
|
2010-07-02 08:14:13 +08:00
|
|
|
|
2012-11-24 07:24:14 +08:00
|
|
|
<listitem><para>Defines monotonic timers
|
2010-07-02 08:14:13 +08:00
|
|
|
relative to different starting points:
|
2010-07-05 03:12:10 +08:00
|
|
|
<varname>OnActiveSec=</varname> defines a
|
2010-07-02 08:14:13 +08:00
|
|
|
timer relative to the moment the timer
|
|
|
|
itself is
|
2010-07-05 03:12:10 +08:00
|
|
|
activated. <varname>OnBootSec=</varname>
|
2010-07-02 08:14:13 +08:00
|
|
|
defines a timer relative to when the
|
|
|
|
machine was booted
|
2010-07-05 03:12:10 +08:00
|
|
|
up. <varname>OnStartupSec=</varname>
|
2010-07-02 08:14:13 +08:00
|
|
|
defines a timer relative to when
|
2013-01-17 09:27:06 +08:00
|
|
|
systemd was first
|
2010-07-05 03:12:10 +08:00
|
|
|
started. <varname>OnUnitActiveSec=</varname>
|
2010-07-02 08:14:13 +08:00
|
|
|
defines a timer relative to when the
|
|
|
|
unit the timer is activating was last
|
2010-07-05 03:12:10 +08:00
|
|
|
activated. <varname>OnUnitInactiveSec=</varname>
|
2010-07-02 08:14:13 +08:00
|
|
|
defines a timer relative to when the
|
|
|
|
unit the timer is activating was last
|
|
|
|
deactivated.</para>
|
|
|
|
|
|
|
|
<para>Multiple directives may be
|
2010-07-02 15:51:25 +08:00
|
|
|
combined of the same and of different
|
2010-07-02 08:14:13 +08:00
|
|
|
types. For example, by combining
|
2010-07-05 03:12:10 +08:00
|
|
|
<varname>OnBootSec=</varname> and
|
2013-09-13 03:12:49 +08:00
|
|
|
<varname>OnUnitActiveSec=</varname>, it is
|
2010-07-02 08:14:13 +08:00
|
|
|
possible to define a timer that
|
|
|
|
elapses in regular intervals and
|
|
|
|
activates a specific service each
|
|
|
|
time.</para>
|
|
|
|
|
|
|
|
<para>The arguments to the directives
|
|
|
|
are time spans configured in
|
2010-07-05 03:12:10 +08:00
|
|
|
seconds. Example: "OnBootSec=50" means
|
2010-07-02 08:14:13 +08:00
|
|
|
50s after boot-up. The argument may
|
|
|
|
also include time units. Example:
|
2012-11-24 07:24:14 +08:00
|
|
|
"OnBootSec=5h 30min" means 5 hours and
|
|
|
|
30 minutes after boot-up. For details
|
2013-12-26 09:47:44 +08:00
|
|
|
about the syntax of time spans, see
|
2010-07-02 08:14:13 +08:00
|
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
|
|
|
|
|
|
|
<para>If a timer configured with
|
2010-07-05 03:12:10 +08:00
|
|
|
<varname>OnBootSec=</varname> or
|
|
|
|
<varname>OnStartupSec=</varname> is
|
2010-07-02 08:14:13 +08:00
|
|
|
already in the past when the timer
|
|
|
|
unit is activated, it will immediately
|
|
|
|
elapse and the configured unit is
|
|
|
|
started. This is not the case for
|
|
|
|
timers defined in the other
|
2012-11-24 07:24:14 +08:00
|
|
|
directives.</para>
|
2010-07-02 08:14:13 +08:00
|
|
|
|
|
|
|
<para>These are monotonic timers,
|
2010-07-02 15:51:25 +08:00
|
|
|
independent of wall-clock time and timezones. If the
|
2010-07-02 08:14:13 +08:00
|
|
|
computer is temporarily suspended, the
|
2013-01-17 09:27:06 +08:00
|
|
|
monotonic clock stops too.</para>
|
|
|
|
|
|
|
|
<para>If the empty string is assigned
|
2013-06-28 03:51:44 +08:00
|
|
|
to any of these options, the list of
|
2013-01-17 09:27:06 +08:00
|
|
|
timers is reset, and all prior
|
|
|
|
assignments will have no
|
2013-11-22 05:07:51 +08:00
|
|
|
effect.</para>
|
|
|
|
|
2013-12-26 09:47:45 +08:00
|
|
|
<para>Note that timers do not
|
|
|
|
necessarily expire at the precise
|
2013-11-22 05:07:51 +08:00
|
|
|
time configured with these settings,
|
|
|
|
as they are subject to the
|
|
|
|
<varname>AccuracySec=</varname>
|
|
|
|
setting below.</para></listitem>
|
2010-07-02 08:14:13 +08:00
|
|
|
|
|
|
|
</varlistentry>
|
2012-11-24 07:24:14 +08:00
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><varname>OnCalendar=</varname></term>
|
|
|
|
|
|
|
|
<listitem><para>Defines realtime
|
2013-11-22 05:07:51 +08:00
|
|
|
(i.e. wallclock) timers with calendar
|
2012-11-24 07:24:14 +08:00
|
|
|
event expressions. See
|
|
|
|
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
|
|
|
for more information on the syntax of
|
2013-12-26 09:47:44 +08:00
|
|
|
calendar event expressions. Otherwise,
|
2013-01-17 09:27:06 +08:00
|
|
|
the semantics are similar to
|
|
|
|
<varname>OnActiveSec=</varname> and
|
2013-11-22 05:07:51 +08:00
|
|
|
related settings.</para>
|
|
|
|
|
2013-12-26 09:47:45 +08:00
|
|
|
<para>Note that timers do not
|
|
|
|
necessarily expire at the precise
|
2013-11-22 05:07:51 +08:00
|
|
|
time configured with this setting,
|
|
|
|
as it is subject to the
|
|
|
|
<varname>AccuracySec=</varname>
|
|
|
|
setting below.</para></listitem>
|
2012-11-24 07:24:14 +08:00
|
|
|
</varlistentry>
|
|
|
|
|
2013-11-22 05:07:51 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><varname>AccuracySec=</varname></term>
|
|
|
|
|
|
|
|
<listitem><para>Specify the accuracy
|
|
|
|
the timer shall elapse with. Defaults
|
|
|
|
to 1min. The timer is scheduled to
|
2013-12-26 09:47:45 +08:00
|
|
|
elapse within a time window starting
|
2013-11-22 05:07:51 +08:00
|
|
|
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>
|
2013-12-26 09:47:44 +08:00
|
|
|
later. Within this time window, the
|
2013-11-22 05:07:51 +08:00
|
|
|
expiry time will be placed at a
|
|
|
|
host-specific, randomized but stable
|
2014-02-17 10:37:13 +08:00
|
|
|
position that is synchronized between
|
2013-11-22 05:07:51 +08:00
|
|
|
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
|
2013-12-26 09:47:44 +08:00
|
|
|
get best accuracy, set this option to
|
2013-11-22 05:07:51 +08:00
|
|
|
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
|
2013-12-26 09:47:44 +08:00
|
|
|
consumption, make sure to set this
|
2013-11-22 05:07:51 +08:00
|
|
|
value as high as possible and as low
|
|
|
|
as necessary.</para></listitem>
|
|
|
|
</varlistentry>
|
2010-07-02 08:14:13 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><varname>Unit=</varname></term>
|
|
|
|
|
|
|
|
<listitem><para>The unit to activate
|
2010-07-02 08:38:30 +08:00
|
|
|
when this timer elapses. The argument is a
|
2010-07-02 08:14:13 +08:00
|
|
|
unit name, whose suffix is not
|
2013-07-12 11:39:27 +08:00
|
|
|
<literal>.timer</literal>. If not
|
2010-07-02 15:51:25 +08:00
|
|
|
specified, this value defaults to a
|
2010-07-02 08:14:13 +08:00
|
|
|
service that has the same name as the
|
|
|
|
timer unit, except for the
|
2010-07-07 09:24:38 +08:00
|
|
|
suffix. (See above.) It is recommended
|
2010-07-02 08:14:13 +08:00
|
|
|
that the unit name that is activated
|
|
|
|
and the unit name of the timer unit
|
2010-07-07 09:24:38 +08:00
|
|
|
are named identically, except for the
|
2010-07-02 08:14:13 +08:00
|
|
|
suffix.</para></listitem>
|
|
|
|
</varlistentry>
|
2014-03-21 10:25:28 +08:00
|
|
|
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><varname>Persistent=</varname></term>
|
|
|
|
|
|
|
|
<listitem><para>Takes a boolean
|
2014-04-08 08:58:37 +08:00
|
|
|
argument. If true, the time when the
|
|
|
|
service unit was last triggered is
|
|
|
|
stored on disk. When the timer is
|
|
|
|
activated, the service unit is
|
|
|
|
triggered immediately if it would have
|
|
|
|
been triggered at least once during
|
|
|
|
the time when the timer was inactive.
|
|
|
|
This is useful to catch up on missed
|
|
|
|
runs of the service when the machine
|
|
|
|
was off. Note that this setting only
|
|
|
|
has an effect on timers configured
|
|
|
|
with <varname>OnCalendar=</varname>.
|
2014-03-21 10:25:28 +08:00
|
|
|
</para></listitem>
|
|
|
|
</varlistentry>
|
2014-03-24 23:09:54 +08:00
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><varname>WakeSystem=</varname></term>
|
|
|
|
|
|
|
|
<listitem><para>Takes a boolean
|
2014-05-08 07:28:45 +08:00
|
|
|
argument. If true, an elapsing timer
|
2014-03-24 23:09:54 +08:00
|
|
|
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>
|
2010-07-02 08:14:13 +08:00
|
|
|
</variablelist>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>See Also</title>
|
|
|
|
<para>
|
2010-07-07 07:38:56 +08:00
|
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
2010-07-02 08:14:13 +08:00
|
|
|
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
|
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
2012-11-24 07:24:14 +08:00
|
|
|
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
2013-01-15 11:08:33 +08:00
|
|
|
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
2013-11-22 05:07:51 +08:00
|
|
|
<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>
|
2010-07-02 08:14:13 +08:00
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
</refentry>
|