:: Re: [Dng] Why daemontools is so coo…
Inizio della pagina
Delete this message
Reply to this message
Autore: Isaac Dunham
Data:  
To: poitr pogo
CC: dng
Oggetto: Re: [Dng] Why daemontools is so cool
On Sat, Mar 28, 2015 at 02:52:47PM +0100, poitr pogo wrote:
(in response to the question of why s6 "prevents daemonizing")
> Cannot. This is from the s6 docs. I'm not using s6. Just heard about it today.


If you want to *manage* a daemon (ie, do something when it stops, like
restarting it), it's very tricky to do it reliably without having a fixed
PID; "daemonizing" means close stdin/stdout/stderr, then
if (fork()) exit(0);
or some such thing (in other words, create a new process and exit the
old one), so you do not have a fixed PID.

On Linux, BSD, and older UNIX versions, this can be done thus:
daemon(0,0);

> Another s6 limitation - finish script must end in 3 seconds. or will be killed.
> Nice for desktop, not a server.


sysvinit /etc/init.d/sendsigs actually only allows 1 second.

> It used to be that an application is responsible for proper start
> up/shutdown procedure, as application knows the proper way how to do
> it. Init script is just a place where to hook a startup/shutdown
> script to be executed when system needs to start/stop application in
> some automatic way.


> Now there are tools which help deamonize things.
> Depending how portable they are it make the price one has to pay when
> decides to use them instead of handling this yourself in the
> application.


My understanding is that s6 and some of the equivalent packages, such
as daemontools, are fairly portable.

They are generally not used as a way to offload daemonizing, but as a
way to ensure that a service stays started. If you don't need that,
you don't need them.

> Regards
> piotr


Thanks,
Isaac Dunham