Bug#752055: ambiguous option name "Type=forking"

intrigeri intrigeri at debian.org
Mon Nov 17 13:04:40 GMT 2014


Hi Harald,

Harald Dunkel wrote (19 Jun 2014 07:24:03 GMT) :
> Doing a fork and becoming a daemon process are not the same.
> Something like "Type=forking" in the *.service file is
> ambiguous. Does systemd provide a controlling terminal to
> the ExecStart job that has to be dropped, before forking
> again?

> Please clarify.

daemon(7) has more details, including the fact that traditional SysV
Daemons must:

  6. In the child, call setsid() to detach from any terminal and
     create an independent session.
  7. In the child, call fork() again, to ensure that the daemon can
     never re-acquire a terminal again.

Now, this information can easily be found using $web_search_engine,
but I agree that it should be easier to find it when reading
systemd.service(5). If the section about Type=forking in this manpage
did point to daemon(7), would your concerns be addressed?

> The man page has a pretty weird description of the "behavior of
> traditional UNIX daemons".

I agree it's vague, but apparently it has some well-accepted meaning.
https://en.wikipedia.org/wiki/Daemon_(computing)#Creation reads:

  the common method for a process to become a daemon, when the process
  is started from the command line or from a startup script such as an
  init script or a SystemStarter script, involves:

    * Dissociating from the controlling tty

(I realize that pointing to Wikipedia feels weird here.)

Cheers,
--
intrigeri



More information about the Pkg-systemd-maintainers mailing list