chiark / gitweb /
man: reword man page titles
[elogind.git] / man / systemd.service.xml
1 <?xml version='1.0'?> <!--*-nxml-*-->
2 <?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
3 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
4         "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
5
6 <!--
7   This file is part of systemd.
8
9   Copyright 2010 Lennart Poettering
10
11   systemd is free software; you can redistribute it and/or modify it
12   under the terms of the GNU Lesser General Public License as published by
13   the Free Software Foundation; either version 2.1 of the License, or
14   (at your option) any later version.
15
16   systemd is distributed in the hope that it will be useful, but
17   WITHOUT ANY WARRANTY; without even the implied warranty of
18   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19   Lesser General Public License for more details.
20
21   You should have received a copy of the GNU Lesser General Public License
22   along with systemd; If not, see <http://www.gnu.org/licenses/>.
23 -->
24
25 <refentry id="systemd.service">
26         <refentryinfo>
27                 <title>systemd.service</title>
28                 <productname>systemd</productname>
29
30                 <authorgroup>
31                         <author>
32                                 <contrib>Developer</contrib>
33                                 <firstname>Lennart</firstname>
34                                 <surname>Poettering</surname>
35                                 <email>lennart@poettering.net</email>
36                         </author>
37                 </authorgroup>
38         </refentryinfo>
39
40         <refmeta>
41                 <refentrytitle>systemd.service</refentrytitle>
42                 <manvolnum>5</manvolnum>
43         </refmeta>
44
45         <refnamediv>
46                 <refname>systemd.service</refname>
47                 <refpurpose>Service unit configuration</refpurpose>
48         </refnamediv>
49
50         <refsynopsisdiv>
51                 <para><filename>systemd.service</filename></para>
52         </refsynopsisdiv>
53
54         <refsect1>
55                 <title>Description</title>
56
57                 <para>A unit configuration file whose name ends in
58                 <filename>.service</filename> encodes information
59                 about a process controlled and supervised by
60                 systemd.</para>
61
62                 <para>This man page lists the configuration options
63                 specific to this unit type. See
64                 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
65                 for the common options of all unit configuration
66                 files. The common configuration items are configured
67                 in the generic <literal>[Unit]</literal> and
68                 <literal>[Install]</literal> sections. The service
69                 specific configuration options are configured in the
70                 <literal>[Service]</literal> section.</para>
71
72                 <para>Additional options are listed in
73                 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
74                 which define the execution environment the commands
75                 are executed in.</para>
76
77                 <para>Unless <varname>DefaultDependencies=</varname>
78                 is set to <option>false</option>, service units will
79                 implicitly have dependencies of type
80                 <varname>Requires=</varname> and
81                 <varname>After=</varname> on
82                 <filename>basic.target</filename> as well as
83                 dependencies of type <varname>Conflicts=</varname> and
84                 <varname>Before=</varname> on
85                 <filename>shutdown.target</filename>. These ensure
86                 that normal service units pull in basic system
87                 initialization, and are terminated cleanly prior to
88                 system shutdown. Only services involved with early
89                 boot or late system shutdown should disable this
90                 option.</para>
91
92                 <para>If a service is requested under a certain name
93                 but no unit configuration file is found, systemd looks
94                 for a SysV init script by the same name (with the
95                 <filename>.service</filename> suffix removed) and
96                 dynamically creates a service unit from that
97                 script. This is useful for compatibility with
98                 SysV. Note that this compatibility is quite
99                 comprehensive but not 100%. For details about the
100                 incomptibilities see the <ulink
101                 url="http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities">Incompatibilities
102                 with SysV</ulink> document.
103                 </para>
104         </refsect1>
105
106         <refsect1>
107                 <title>Options</title>
108
109                 <para>Service files must include a
110                 <literal>[Service]</literal> section, which carries
111                 information about the service and the process it
112                 supervises. A number of options that may be used in
113                 this section are shared with other unit types. These
114                 options are documented in
115                 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
116                 options specific to the <literal>[Service]</literal>
117                 section of service units are the following:</para>
118
119                 <variablelist>
120                         <varlistentry>
121                                 <term><varname>Type=</varname></term>
122
123                                 <listitem><para>Configures the process
124                                 start-up type for this service
125                                 unit. One of <option>simple</option>,
126                                 <option>forking</option>,
127                                 <option>oneshot</option>,
128                                 <option>dbus</option>,
129                                 <option>notify</option> or
130                                 <option>idle</option>.</para>
131
132                                 <para>If set to
133                                 <option>simple</option> (the default
134                                 value if <varname>BusName=</varname>
135                                 is not specified) it is expected that
136                                 the process configured with
137                                 <varname>ExecStart=</varname> is the
138                                 main process of the service. In this
139                                 mode, if the process offers
140                                 functionality to other processes on
141                                 the system its communication channels
142                                 should be installed before the daemon
143                                 is started up (e.g. sockets set up by
144                                 systemd, via socket activation), as
145                                 systemd will immediately proceed
146                                 starting follow-up units.</para>
147
148                                 <para>If set to
149                                 <option>forking</option> it is
150                                 expected that the process configured
151                                 with <varname>ExecStart=</varname>
152                                 will call <function>fork()</function>
153                                 as part of its start-up. The parent process is
154                                 expected to exit when start-up is
155                                 complete and all communication
156                                 channels set up. The child continues
157                                 to run as the main daemon
158                                 process. This is the behaviour of
159                                 traditional UNIX daemons. If this
160                                 setting is used, it is recommended to
161                                 also use the
162                                 <varname>PIDFile=</varname> option, so
163                                 that systemd can identify the main
164                                 process of the daemon. systemd will
165                                 proceed starting follow-up units as
166                                 soon as the parent process
167                                 exits.</para>
168
169                                 <para>Behaviour of
170                                 <option>oneshot</option> is similar
171                                 to <option>simple</option>, however
172                                 it is expected that the process has to
173                                 exit before systemd starts follow-up
174                                 units. <varname>RemainAfterExit=</varname>
175                                 is particularly useful for this type
176                                 of service.</para>
177
178                                 <para>Behaviour of
179                                 <option>dbus</option> is similar to
180                                 <option>simple</option>, however it is
181                                 expected that the daemon acquires a
182                                 name on the D-Bus bus, as configured
183                                 by
184                                 <varname>BusName=</varname>. systemd
185                                 will proceed starting follow-up units
186                                 after the D-Bus bus name has been
187                                 acquired. Service units with this
188                                 option configured implicitly gain
189                                 dependencies on the
190                                 <filename>dbus.socket</filename>
191                                 unit. This type is the default if
192                                 <varname>BusName=</varname> is
193                                 specified.</para>
194
195                                 <para>Behaviour of
196                                 <option>notify</option> is similar to
197                                 <option>simple</option>, however it is
198                                 expected that the daemon sends a
199                                 notification message via
200                                 <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
201                                 or an equivalent call when it finished
202                                 starting up. systemd will proceed
203                                 starting follow-up units after this
204                                 notification message has been sent. If
205                                 this option is used
206                                 <varname>NotifyAccess=</varname> (see
207                                 below) should be set to open access to
208                                 the notification socket provided by
209                                 systemd. If
210                                 <varname>NotifyAccess=</varname> is
211                                 not set, it will be implicitly set to
212                                 <option>main</option>.</para>
213
214                                 <para>Behaviour of
215                                 <option>idle</option> is very similar
216                                 to <option>simple</option>, however
217                                 actual execution of a the service
218                                 binary is delayed until all jobs are
219                                 dispatched. This may be used to avoid
220                                 interleaving of output of shell
221                                 services with the status output on the
222                                 console.</para>
223                                 </listitem>
224                         </varlistentry>
225
226                         <varlistentry>
227                                 <term><varname>RemainAfterExit=</varname></term>
228
229                                 <listitem><para>Takes a boolean value
230                                 that specifies whether the service
231                                 shall be considered active even when
232                                 all its processes exited. Defaults to
233                                 <option>no</option>.</para>
234                                 </listitem>
235                         </varlistentry>
236
237                         <varlistentry>
238                                 <term><varname>GuessMainPID=</varname></term>
239
240                                 <listitem><para>Takes a boolean value
241                                 that specifies whether systemd should
242                                 try to guess the main PID of a service
243                                 should if it cannot be determined
244                                 reliably. This option is ignored
245                                 unless <option>Type=forking</option>
246                                 is set and <option>PIDFile=</option>
247                                 is unset because for the other types
248                                 or with an explicitly configured PID
249                                 file the main PID is always known. The
250                                 guessing algorithm might come to
251                                 incorrect conclusions if a daemon
252                                 consists of more than one process. If
253                                 the main PID cannot be determined
254                                 failure detection and automatic
255                                 restarting of a service will not work
256                                 reliably. Defaults to
257                                 <option>yes</option>.</para>
258                                 </listitem>
259                         </varlistentry>
260
261                         <varlistentry>
262                                 <term><varname>PIDFile=</varname></term>
263
264                                 <listitem><para>Takes an absolute file
265                                 name pointing to the PID file of this
266                                 daemon. Use of this option is
267                                 recommended for services where
268                                 <varname>Type=</varname> is set to
269                                 <option>forking</option>. systemd will
270                                 read the PID of the main process of
271                                 the daemon after start-up of the
272                                 service. systemd will not write to the
273                                 file configured here.</para>
274                                 </listitem>
275                         </varlistentry>
276
277                         <varlistentry>
278                                 <term><varname>BusName=</varname></term>
279
280                                 <listitem><para>Takes a D-Bus bus
281                                 name, where this service is reachable
282                                 as. This option is mandatory for
283                                 services where
284                                 <varname>Type=</varname> is set to
285                                 <option>dbus</option>, but its use
286                                 is otherwise recommended as well if
287                                 the process takes a name on the D-Bus
288                                 bus.</para>
289                                 </listitem>
290                         </varlistentry>
291
292                         <varlistentry>
293                                 <term><varname>ExecStart=</varname></term>
294                                 <listitem><para>Takes a command line
295                                 that is executed when this service
296                                 shall be started up. The first token
297                                 of the command line must be an
298                                 absolute file name, then followed by
299                                 arguments for the process. It is
300                                 mandatory to set this option for all
301                                 services. This option may not be
302                                 specified more than once, except when
303                                 <varname>Type=oneshot</varname> is
304                                 used in which case more than one
305                                 <varname>ExecStart=</varname> line is
306                                 accepted which are then invoked one by
307                                 one, sequentially in the order they
308                                 appear in the unit file.</para>
309
310                                 <para>Optionally, if the absolute file
311                                 name is prefixed with
312                                 <literal>@</literal>, the second token
313                                 will be passed as
314                                 <literal>argv[0]</literal> to the
315                                 executed process, followed by the
316                                 further arguments specified. If the
317                                 first token is prefixed with
318                                 <literal>-</literal> an exit code of
319                                 the command normally considered a
320                                 failure (i.e. non-zero exit status or
321                                 abnormal exit due to signal) is ignored
322                                 and considered success. If both
323                                 <literal>-</literal> and
324                                 <literal>@</literal> are used for the
325                                 same command the former must precede
326                                 the latter. Unless
327                                 <varname>Type=forking</varname> is
328                                 set, the process started via this
329                                 command line will be considered the
330                                 main process of the daemon. The
331                                 command line accepts % specifiers as
332                                 described in
333                                 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
334
335                                 <para>On top of that basic environment
336                                 variable substitution is
337                                 supported. Use
338                                 <literal>${FOO}</literal> as part of a
339                                 word, or as word of its own on the
340                                 command line, in which case it will be
341                                 replaced by the value of the
342                                 environment variable including all
343                                 whitespace it contains, resulting in a
344                                 single argument.  Use
345                                 <literal>$FOO</literal> as a separate
346                                 word on the command line, in which
347                                 case it will be replaced by the value
348                                 of the environment variable split up
349                                 at whitespace, resulting in no or more
350                                 arguments. Note that the first
351                                 argument (i.e. the program to execute)
352                                 may not be a variable, and must be a
353                                 literal and absolute path
354                                 name.</para></listitem>
355                         </varlistentry>
356
357                         <varlistentry>
358                                 <term><varname>ExecStartPre=</varname></term>
359                                 <term><varname>ExecStartPost=</varname></term>
360                                 <listitem><para>Additional commands
361                                 that are executed before (resp. after)
362                                 the command in
363                                 <varname>ExecStart=</varname>. Multiple
364                                 command lines may be concatenated in a
365                                 single directive, by separating them
366                                 by semicolons (these semicolons must
367                                 be passed as separate words). In that
368                                 case, the commands are executed one
369                                 after the other,
370                                 serially. Alternatively, these
371                                 directives may be specified more than
372                                 once with the same effect. However,
373                                 the latter syntax is not recommended
374                                 for compatibility with parsers
375                                 suitable for XDG
376                                 <filename>.desktop</filename> files.
377                                 Use of these settings is
378                                 optional. Specifier and environment
379                                 variable substitution is
380                                 supported.</para></listitem>
381                         </varlistentry>
382
383                         <varlistentry>
384                                 <term><varname>ExecReload=</varname></term>
385                                 <listitem><para>Commands to execute to
386                                 trigger a configuration reload in the
387                                 service. This argument takes multiple
388                                 command lines, following the same
389                                 scheme as pointed out for
390                                 <varname>ExecStartPre=</varname>
391                                 above. Use of this setting is
392                                 optional. Specifier and environment
393                                 variable substitution is supported
394                                 here following the same scheme as for
395                                 <varname>ExecStart=</varname>. One
396                                 special environment variable is set:
397                                 if known <literal>$MAINPID</literal> is
398                                 set to the main process of the
399                                 daemon, and may be used for command
400                                 lines like the following:
401                                 <command>/bin/kill -HUP
402                                 $MAINPID</command>.</para></listitem>
403                         </varlistentry>
404
405                         <varlistentry>
406                                 <term><varname>ExecStop=</varname></term>
407                                 <listitem><para>Commands to execute to
408                                 stop the service started via
409                                 <varname>ExecStart=</varname>. This
410                                 argument takes multiple command lines,
411                                 following the same scheme as pointed
412                                 out for
413                                 <varname>ExecStartPre=</varname>
414                                 above. Use of this setting is
415                                 optional. All processes remaining for
416                                 a service after the commands
417                                 configured in this option are run are
418                                 terminated according to the
419                                 <varname>KillMode=</varname> setting
420                                 (see below). If this option is not
421                                 specified the process is terminated
422                                 right-away when service stop is
423                                 requested. Specifier and environment
424                                 variable substitution is supported
425                                 (including
426                                 <literal>$MAINPID</literal>, see
427                                 above).</para></listitem>
428                         </varlistentry>
429
430                         <varlistentry>
431                                 <term><varname>ExecStopPost=</varname></term>
432                                 <listitem><para>Additional commands
433                                 that are executed after the service
434                                 was stopped using the commands
435                                 configured in
436                                 <varname>ExecStop=</varname>. This
437                                 argument takes multiple command lines,
438                                 following the same scheme as pointed
439                                 out for
440                                 <varname>ExecStartPre</varname>. Use
441                                 of these settings is
442                                 optional. Specifier and environment
443                                 variable substitution is
444                                 supported.</para></listitem>
445                         </varlistentry>
446
447                         <varlistentry>
448                                 <term><varname>RestartSec=</varname></term>
449                                 <listitem><para>Configures the time to
450                                 sleep before restarting a service (as
451                                 configured with
452                                 <varname>Restart=</varname>). Takes a
453                                 unit-less value in seconds, or a time
454                                 span value such as "5min
455                                 20s". Defaults to
456                                 100ms.</para></listitem>
457                         </varlistentry>
458
459                         <varlistentry>
460                                 <term><varname>TimeoutSec=</varname></term>
461                                 <listitem><para>Configures the time to
462                                 wait for start-up and stop. If a
463                                 daemon service does not signal
464                                 start-up completion within the
465                                 configured time the service will be
466                                 considered failed and be shut down
467                                 again. If a service is asked to stop
468                                 but does not terminate in the
469                                 specified time it will be terminated
470                                 forcibly via SIGTERM, and after
471                                 another delay of this time with
472                                 SIGKILL. (See
473                                 <varname>KillMode=</varname>
474                                 below.) Takes a unit-less value in seconds, or a
475                                 time span value such as "5min
476                                 20s". Pass 0 to disable the timeout
477                                 logic. Defaults to
478                                 90s, except when <varname>Type=oneshot</varname> is
479                                 used in which case the timeout
480                                 is disabled by default.</para></listitem>
481                         </varlistentry>
482
483                         <varlistentry>
484                                 <term><varname>WatchdogSec=</varname></term>
485                                 <listitem><para>Configures the
486                                 watchdog timeout for a service. This
487                                 is activated when the start-up is
488                                 completed. The service must call
489                                 <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
490                                 regularly with "WATCHDOG=1" (i.e. the
491                                 "keep-alive ping"). If the time
492                                 between two such calls is larger than
493                                 the configured time then the service
494                                 is placed in a failure state. By
495                                 setting <varname>Restart=</varname> to
496                                 <option>on-failure</option> or
497                                 <option>always</option> the service
498                                 will be automatically restarted. The
499                                 time configured here will be passed to
500                                 the executed service process in the
501                                 <varname>WATCHDOG_USEC=</varname>
502                                 environment variable. This allows
503                                 daemons to automatically enable the
504                                 keep-alive pinging logic if watchdog
505                                 support is enabled for the service. If
506                                 this option is used
507                                 <varname>NotifyAccess=</varname> (see
508                                 below) should be set to open access to
509                                 the notification socket provided by
510                                 systemd. If
511                                 <varname>NotifyAccess=</varname> is
512                                 not set, it will be implicitly set to
513                                 <option>main</option>. Defaults to 0,
514                                 which disables this
515                                 feature.</para></listitem>
516                         </varlistentry>
517
518                         <varlistentry>
519                                 <term><varname>Restart=</varname></term>
520                                 <listitem><para>Configures whether the
521                                 main service process shall be
522                                 restarted when it exits. Takes one of
523                                 <option>no</option>,
524                                 <option>on-success</option>,
525                                 <option>on-failure</option>,
526                                 <option>on-abort</option> or
527                                 <option>always</option>. If set to
528                                 <option>no</option> (the default) the
529                                 service will not be restarted when it
530                                 exits. If set to
531                                 <option>on-success</option> it will be
532                                 restarted only when it exited cleanly,
533                                 i.e. terminated with an exit code of
534                                 0. If set to
535                                 <option>on-failure</option> it will be
536                                 restarted only when it exited with an
537                                 exit code not equalling 0, when
538                                 terminated by a signal (including on
539                                 core dump), when an operation (such as
540                                 service reload) times out or when the
541                                 configured watchdog timeout is
542                                 triggered. If set to
543                                 <option>on-abort</option> it will be
544                                 restarted only if it exits due to
545                                 reception of an uncaught signal
546                                 (including on core dump). If set to
547                                 <option>always</option> the service
548                                 will be restarted regardless whether
549                                 it exited cleanly or not, got
550                                 terminated abnormally by a signal or
551                                 hit a timeout.</para></listitem>
552                         </varlistentry>
553
554                         <varlistentry>
555                                 <term><varname>PermissionsStartOnly=</varname></term>
556                                 <listitem><para>Takes a boolean
557                                 argument. If true, the permission
558                                 related execution options as
559                                 configured with
560                                 <varname>User=</varname> and similar
561                                 options (see
562                                 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
563                                 for more information) are only applied
564                                 to the process started with
565                                 <varname>ExecStart=</varname>, and not
566                                 to the various other
567                                 <varname>ExecStartPre=</varname>,
568                                 <varname>ExecStartPost=</varname>,
569                                 <varname>ExecReload=</varname>,
570                                 <varname>ExecStop=</varname>,
571                                 <varname>ExecStopPost=</varname>
572                                 commands. If false, the setting is
573                                 applied to all configured commands the
574                                 same way. Defaults to
575                                 false.</para></listitem>
576                         </varlistentry>
577
578                         <varlistentry>
579                                 <term><varname>RootDirectoryStartOnly=</varname></term>
580                                 <listitem><para>Takes a boolean
581                                 argument. If true, the root directory
582                                 as configured with the
583                                 <varname>RootDirectory=</varname>
584                                 option (see
585                                 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
586                                 for more information) is only applied
587                                 to the process started with
588                                 <varname>ExecStart=</varname>, and not
589                                 to the various other
590                                 <varname>ExecStartPre=</varname>,
591                                 <varname>ExecStartPost=</varname>,
592                                 <varname>ExecReload=</varname>,
593                                 <varname>ExecStop=</varname>,
594                                 <varname>ExecStopPost=</varname>
595                                 commands. If false, the setting is
596                                 applied to all configured commands the
597                                 same way. Defaults to
598                                 false.</para></listitem>
599                         </varlistentry>
600
601                         <varlistentry>
602                                 <term><varname>KillMode=</varname></term>
603                                 <listitem><para>Specifies how
604                                 processes of this service shall be
605                                 killed. One of
606                                 <option>control-group</option>,
607                                 <option>process</option>,
608                                 <option>none</option>.</para>
609
610                                 <para>If set to
611                                 <option>control-group</option> all
612                                 remaining processes in the control
613                                 group of this service will be
614                                 terminated on service stop, after the
615                                 stop command (as configured with
616                                 <varname>ExecStop=</varname>) is
617                                 executed. If set to
618                                 <option>process</option> only the main
619                                 process itself is killed. If set to
620                                 <option>none</option> no process is
621                                 killed. In this case only the stop
622                                 command will be executed on service
623                                 stop, but no process be killed
624                                 otherwise. Processes remaining alive
625                                 after stop are left in their control
626                                 group and the control group continues
627                                 to exist after stop unless it is
628                                 empty. Defaults to
629                                 <option>control-group</option>.</para>
630
631                                 <para>Processes will first be
632                                 terminated via SIGTERM (unless the
633                                 signal to send is changed via
634                                 <varname>KillSignal=</varname>). If
635                                 then after a delay (configured via the
636                                 <varname>TimeoutSec=</varname> option)
637                                 processes still remain, the
638                                 termination request is repeated with
639                                 the SIGKILL signal (unless this is
640                                 disabled via the
641                                 <varname>SendSIGKILL=</varname>
642                                 option). See
643                                 <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>
644                                 for more
645                                 information.</para></listitem>
646                         </varlistentry>
647
648                         <varlistentry>
649                                 <term><varname>KillSignal=</varname></term>
650                                 <listitem><para>Specifies which signal
651                                 to use when killing a
652                                 service. Defaults to SIGTERM.
653                                 </para></listitem>
654                         </varlistentry>
655
656                         <varlistentry>
657                                 <term><varname>SendSIGKILL=</varname></term>
658                                 <listitem><para>Specifies whether to
659                                 send SIGKILL to remaining processes
660                                 after a timeout, if the normal
661                                 shutdown procedure left processes of
662                                 the service around. Takes a boolean
663                                 value. Defaults to "yes".
664                                 </para></listitem>
665                         </varlistentry>
666
667                         <varlistentry>
668                                 <term><varname>NonBlocking=</varname></term>
669                                 <listitem><para>Set O_NONBLOCK flag
670                                 for all file descriptors passed via
671                                 socket-based activation. If true, all
672                                 file descriptors >= 3 (i.e. all except
673                                 STDIN/STDOUT/STDERR) will have
674                                 the O_NONBLOCK flag set and hence are in
675                                 non-blocking mode. This option is only
676                                 useful in conjunction with a socket
677                                 unit, as described in
678                                 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Defaults
679                                 to false.</para></listitem>
680                         </varlistentry>
681
682                         <varlistentry>
683                                 <term><varname>NotifyAccess=</varname></term>
684                                 <listitem><para>Controls access to the
685                                 service status notification socket, as
686                                 accessible via the
687                                 <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
688                                 call. Takes one of
689                                 <option>none</option> (the default),
690                                 <option>main</option> or
691                                 <option>all</option>. If
692                                 <option>none</option> no daemon status
693                                 updates are accepted from the service
694                                 processes, all status update messages
695                                 are ignored. If <option>main</option>
696                                 only service updates sent from the
697                                 main process of the service are
698                                 accepted. If <option>all</option> all
699                                 services updates from all members of
700                                 the service's control group are
701                                 accepted. This option should be set to
702                                 open access to the notification socket
703                                 when using
704                                 <varname>Type=notify</varname> or
705                                 <varname>WatchdogUsec=</varname> (see
706                                 above). If those options are used but
707                                 <varname>NotifyAccess=</varname> not
708                                 configured it will be implicitly set
709                                 to
710                                 <option>main</option>.</para></listitem>
711                         </varlistentry>
712
713                         <varlistentry>
714                                 <term><varname>Sockets=</varname></term>
715                                 <listitem><para>Specifies the name of
716                                 the socket units this service shall
717                                 inherit the sockets from when the
718                                 service is started. Normally it
719                                 should not be necessary to use this
720                                 setting as all sockets whose unit
721                                 shares the same name as the service
722                                 (ignoring the different suffix of course)
723                                 are passed to the spawned
724                                 process.</para>
725
726                                 <para>Note that the same socket may be
727                                 passed to multiple processes at the
728                                 same time. Also note that a different
729                                 service may be activated on incoming
730                                 traffic than inherits the sockets. Or
731                                 in other words: The
732                                 <varname>Service=</varname> setting of
733                                 <filename>.socket</filename> units
734                                 doesn't have to match the inverse of the
735                                 <varname>Sockets=</varname> setting of
736                                 the <filename>.service</filename> it
737                                 refers to.</para></listitem>
738                         </varlistentry>
739
740                         <varlistentry>
741                                 <term><varname>StartLimitInterval=</varname></term>
742                                 <term><varname>StartLimitBurst=</varname></term>
743
744                                 <listitem><para>Configure service
745                                 start rate limiting. By default
746                                 services which are started more often
747                                 than 5 times within 10s are not
748                                 permitted to start any more times
749                                 until the 10s interval ends. With
750                                 these two options this rate limiting
751                                 may be modified. Use
752                                 <varname>StartLimitInterval=</varname>
753                                 to configure the checking interval
754                                 (defaults to 10s, set to 0 to disable
755                                 any kind of rate limiting). Use
756                                 <varname>StartLimitBurst=</varname> to
757                                 configure how many starts per interval
758                                 are allowed (defaults to 5). These
759                                 configuration options are particularly
760                                 useful in conjunction with
761                                 <varname>Restart=</varname>, however
762                                 apply to all kinds of starts
763                                 (including manual), not just those
764                                 triggered by the
765                                 <varname>Restart=</varname> logic.
766                                 Note that units which are configured
767                                 for <varname>Restart=</varname> and
768                                 which reach the start limit are not
769                                 attempted to be restarted anymore,
770                                 however they may still be restarted
771                                 manually at a later point from which
772                                 point on the restart logic is again
773                                 activated. Note that
774                                 <command>systemctl
775                                 reset-failed</command> will cause the
776                                 restart rate counter for a service to
777                                 be flushed, which is useful if the
778                                 administrator wants to manually start
779                                 a service and the start limit
780                                 interferes with
781                                 that.</para></listitem>
782                         </varlistentry>
783
784                         <varlistentry>
785                                 <term><varname>StartLimitAction=</varname></term>
786
787                                 <listitem><para>Configure the action
788                                 to take if the rate limit configured
789                                 with
790                                 <varname>StartLimitInterval=</varname>
791                                 and
792                                 <varname>StartLimitBurst=</varname> is
793                                 hit. Takes one of
794                                 <option>none</option>,
795                                 <option>reboot</option>,
796                                 <option>reboot-force</option> or
797                                 <option>reboot-immediate</option>. If
798                                 <option>none</option> is set,
799                                 hitting the rate limit will trigger no
800                                 action besides that the start will not
801                                 be
802                                 permitted. <option>reboot</option>
803                                 causes a reboot following the normal
804                                 shutdown procedure (i.e. equivalent to
805                                 <command>systemctl reboot</command>),
806                                 <option>reboot-force</option> causes
807                                 an forced reboot which will terminate
808                                 all processes forcibly but should
809                                 cause no dirty file systems on reboot
810                                 (i.e. equivalent to <command>systemctl
811                                 reboot -f</command>) and
812                                 <option>reboot-immediate</option>
813                                 causes immediate execution of the
814                                 <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
815                                 system call, which might result in
816                                 data loss.  Defaults to
817                                 <option>none</option>.</para></listitem>
818                         </varlistentry>
819
820                 </variablelist>
821         </refsect1>
822
823         <refsect1>
824                 <title>Compatibility Options</title>
825
826                 <para>The following options are also available in the
827                 <literal>[Service]</literal> section, but exist purely
828                 for compatibility reasons and should not be used in
829                 newly written service files.</para>
830
831                 <variablelist>
832                         <varlistentry>
833                                 <term><varname>SysVStartPriority=</varname></term>
834                                 <listitem><para>Set the SysV start
835                                 priority to use to order this service
836                                 in relation to SysV services lacking
837                                 LSB headers. This option is only
838                                 necessary to fix ordering in relation
839                                 to legacy SysV services, that have no
840                                 ordering information encoded in the
841                                 script headers. As such it should only
842                                 be used as temporary compatibility
843                                 option, and not be used in new unit
844                                 files. Almost always it is a better
845                                 choice to add explicit ordering
846                                 directives via
847                                 <varname>After=</varname> or
848                                 <varname>Before=</varname>,
849                                 instead. For more details see
850                                 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. If
851                                 used, pass an integer value in the
852                                 range 0-99.</para></listitem>
853                         </varlistentry>
854
855                         <varlistentry>
856                                 <term><varname>FsckPassNo=</varname></term>
857                                 <listitem><para>Set the fsck passno
858                                 priority to use to order this service
859                                 in relation to other file system
860                                 checking services. This option is only
861                                 necessary to fix ordering in relation
862                                 to fsck jobs automatically created for
863                                 all <filename>/etc/fstab</filename>
864                                 entries with a value in the fs_passno
865                                 column > 0. As such it should only be
866                                 used as option for fsck
867                                 services. Almost always it is a better
868                                 choice to add explicit ordering
869                                 directives via
870                                 <varname>After=</varname> or
871                                 <varname>Before=</varname>,
872                                 instead. For more details see
873                                 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. If
874                                 used, pass an integer value in the
875                                 same range as
876                                 <filename>/etc/fstab</filename>'s
877                                 fs_passno column. See
878                                 <citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
879                                 for details.</para></listitem>
880                         </varlistentry>
881
882                 </variablelist>
883         </refsect1>
884
885         <refsect1>
886                   <title>See Also</title>
887                   <para>
888                           <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
889                           <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
890                           <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
891                           <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
892                   </para>
893         </refsect1>
894
895 </refentry>