<refnamediv>
<refname>daemon</refname>
- <refpurpose>Writing and Packaging System Daemons</refpurpose>
+ <refpurpose>Writing and packaging system daemons</refpurpose>
</refnamediv>
<refsect1>
first child, so that only the second
child (the actual daemon process)
stays around. This ensures that the
- daemon process is reparented to
+ daemon process is re-parented to
init/PID 1, as all daemons should
be.</para></listitem>
<function>exit()</function> in the
original process. The process that
invoked the daemon must be able to
- rely that this
+ rely on that this
<function>exit()</function> happens
after initialization is complete and
all external communication channels
- established and
+ are established and
accessible.</para></listitem>
</orderedlist>
compatibility with SysV systems should
implement the scheme pointed out
above. However, it is recommended to make this
- behaviour optional and configurable via a
+ behavior optional and configurable via a
command line argument, to ease debugging as
well as to simplify integration into systems
using systemd.</para>
for details.</para></listitem>
<listitem><para>As much as possible,
- rely on the init systemd's
+ rely on the init system's
functionality to limit the access of
the daemon to files, services and
other resources. i.e. in the case of
<para>New-style daemons which support socket
activation must be able to receive their
- sockets from the init system, instead of of
+ sockets from the init system, instead of
creating and binding them themselves. For
details about the programming interfaces for
this scheme provided by systemd see
systemd, kernel devices appearing in the
sysfs/udev device tree can be exposed as units
if they are tagged with the string
- "<literal>systemd</literal>". Like any other
+ <literal>systemd</literal>. Like any other
kind of unit they may then pull in other units
when activated (i.e. Plugged in) and thus
implement device-based activation. Systemd
directory returned by <command>pkg-config
systemd
--variable=systemdsystemunitdir</command> (for
- system services), resp. <command>pkg-config
+ system services) or <command>pkg-config
systemd
--variable=systemduserunitdir</command>
(for user services). This will make the
<listitem><para>If the daemon offers
interfaces to other software running on the
- local system via local AF_UNIX sockets,
+ local system via local <constant>AF_UNIX</constant> sockets,
consider implementing socket-based activation
(see above). Usually a minimal patch is
sufficient to implement this: Extend the
<function>sd_listen_fds()</function> returns a
positive value), skip the socket creation step
and use the passed sockets. Secondly, ensure
- that the file-system socket nodes for local
- AF_UNIX sockets used in the socket-based
+ that the file system socket nodes for local
+ <constant>AF_UNIX</constant> sockets used in the socket-based
activation are not removed when the daemon
shuts down, if sockets have been
passed. Third, if the daemon normally closes