Re: Forking daemons and systemd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Mon, Nov 5, 2012 at 5:01 PM, Leonid Isaev <lisaev@xxxxxxxxxxxx> wrote:
>         I was wondering whether there is a guideline regarding using
> Type=forking daemons in systemd units. For instance, if a daemon supports a
> cmdline switch to run in foreground isn't it better to use this argument in
> ExecStart?

If you start the daemon in the foreground (i.e., use the default
Type=simple), it means that systemd will consider it started
immediately, and not wait for it to be initialized. In other words, it
assumes that whatever communication channels (sockets) have been set
up already and that the daemon supports being socket activated. If
that is not the case, then services which are ordered after your
service might start too early.

Clearly, if you know that nothing will ever be ordered After= your
service the above is not an issue, and you can use Type=simple without
worrying.

A better solution would be to patch the service to support
Type=dbus/notify or to support socket activation.

If that is out of the question, then Type=forking is the safest bet.
This mode is a bit more fragile than the other ones, as it relies on
systemd being able to figure out what is the main process. Specifying
PIDFile= is advised if the daemon supports that. Though it depends on
the daemon implementing that correctly. Most (all?) it works just fine
:-)

HTH,

Tom


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux