systemd.timer.xml 16.3 KB
Newer Older
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
<?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
  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
  (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
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public License
  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>
                <refpurpose>Timer unit configuration</refpurpose>
        </refnamediv>

        <refsynopsisdiv>
                <para><filename><replaceable>timer</replaceable>.timer</filename></para>
        </refsynopsisdiv>

        <refsect1>
                <title>Description</title>

                <para>A unit configuration file whose name ends in
Michael Biebl's avatar
Michael Biebl committed
58
                <literal>.timer</literal> encodes information about
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 129 130
                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>

                <para>For each timer file, a matching unit file must
                exist, describing the unit to activate when the timer
                elapses. By default, a service by the same name as the
                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>

                <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>
        </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>

                <variablelist class='unit-directives'>
                        <varlistentry>
                                <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>

                                <listitem><para>Defines monotonic timers
                                relative to different starting points:
                                <varname>OnActiveSec=</varname> defines a
                                timer relative to the moment the timer
                                itself is
                                activated. <varname>OnBootSec=</varname>
                                defines a timer relative to when the
                                machine was booted
                                up. <varname>OnStartupSec=</varname>
                                defines a timer relative to when
                                systemd was first
                                started. <varname>OnUnitActiveSec=</varname>
                                defines a timer relative to when the
                                unit the timer is activating was last
                                activated. <varname>OnUnitInactiveSec=</varname>
                                defines a timer relative to when the
                                unit the timer is activating was last
                                deactivated.</para>

                                <para>Multiple directives may be
                                combined of the same and of different
                                types. For example, by combining
                                <varname>OnBootSec=</varname> and
Michael Biebl's avatar
Michael Biebl committed
131
                                <varname>OnUnitActiveSec=</varname>, it is
132 133 134 135 136 137 138 139 140 141 142 143
                                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
                                seconds. Example: "OnBootSec=50" means
                                50s after boot-up. The argument may
                                also include time units. Example:
                                "OnBootSec=5h 30min" means 5 hours and
                                30 minutes after boot-up. For details
144
                                about the syntax of time spans, see
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>

                                <para>If a timer configured with
                                <varname>OnBootSec=</varname> or
                                <varname>OnStartupSec=</varname> is
                                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
                                directives.</para>

                                <para>These are monotonic timers,
                                independent of wall-clock time and timezones. If the
                                computer is temporarily suspended, the
                                monotonic clock stops too.</para>

                                <para>If the empty string is assigned
Michael Biebl's avatar
Michael Biebl committed
163
                                to any of these options, the list of
164 165
                                timers is reset, and all prior
                                assignments will have no
166 167 168 169 170 171 172 173
                                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>
174 175 176 177 178 179 180

                        </varlistentry>

                        <varlistentry>
                                <term><varname>OnCalendar=</varname></term>

                                <listitem><para>Defines realtime
181
                                (i.e. wallclock) timers with calendar
182 183 184
                                event expressions. See
                                <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
                                for more information on the syntax of
185
                                calendar event expressions. Otherwise,
186 187
                                the semantics are similar to
                                <varname>OnActiveSec=</varname> and
188 189 190 191 192 193 194 195
                                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>
196 197
                        </varlistentry>

198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235
                        <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>
236 237 238 239 240 241
                        <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
Michael Biebl's avatar
Michael Biebl committed
242
                                <literal>.timer</literal>. If not
243 244 245 246 247 248 249 250 251
                                specified, this value defaults to a
                                service that has the same name as the
                                timer unit, except for the
                                suffix. (See above.) It is recommended
                                that the unit name that is activated
                                and the unit name of the timer unit
                                are named identically, except for the
                                suffix.</para></listitem>
                        </varlistentry>
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288


                        <varlistentry>
                                <term><varname>Persistent=</varname></term>

                                <listitem><para>Takes a boolean
                                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>.
                                </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>
289 290 291 292 293 294 295 296 297 298 299
                </variablelist>
        </refsect1>

        <refsect1>
                  <title>See Also</title>
                  <para>
                          <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                          <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
                          <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>,
300 301 302
                          <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>
303 304 305 306
                  </para>
        </refsect1>

</refentry>