Thomas Christian Chust wrote:
I wonder why one would want to pass this cleanup argument to the daemon
procedure -- why should the spawned process simply perform cleanup once
the daemon procedure returns?
The problem with that, as I see it, is that sometimes daemons don't get to
return normally, i.e. if they get killed. Of course any proper daemon will
implement signal handlers and such so that it will clean up after itself and
exit gracefully. With my implementation you can implement that sort of stuff
anyway you like, and just call the additional (cleanup) proc to take care of
whatever you had daemonize set up for you, i.e. the PID file.
Of course, it might be nice to have daemonize take care of everything, including
signal handlers and such. I would see that as a further abstraction.
(define (super-daemonize proc)
(daemonize (lambda (cleanup)
(set-signal-handler! ...) ; Call cleanup if we get killed.
(proc)
(cleanup))))
_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users