Technically this is accomplished by having the daemon call setsid(), then fork() and then having the parent exit(). The result is that the child is re-parented to process 1 (init) and is in its own "session group".

Unfortunately this means that a daemon started via k5start which does this is no longer a child of k5start; this means that k5start cannot do its job.

Here are some hints on how to get various daemons to disable this behavior:

1. general

The runit package also needs to disable this behavior, so they've collected a lot of hints here.