
When you succeed please write about it - I'd love to read about it!I was
interested in writing a deamon in the past but didn't have time for it and a
nice tutorial would probably help a lot.
All best
Christopher Skrzętnicki
On Sun, Jan 25, 2009 at 02:57, Belka
If you want a normal daemon, you want to look at System.Posix.Process to create a proper daemon (forkProcess, createSession; don't forget to close stdOutput (and, errr, Haskell library types: stdin and stderr are where? not System.Posix.IO with stdOutput) and reopen them on / dev/null, at least if they're ttys as determined by System.Posix.Terminal.queryTerminal). You also want to write out a pidfile (/var/run/programname.pid) for use by startproc / killproc, and you want to install a handler for sigTERM (System.Posix.Signals.installHandler) which sets the exit flag (TVar, MVar, IORef, Chan, take your pick). Ideally you also catch sigHUP and reload your state.
Thanks for the guide, Brandon !!
By the way, I found a piece of code with function (daemonize :: IO () -> IO ()) (http://sneakymustard.com/2008/12/11/haskell-daemons), which is close to the subject.
I guess now I'm ready to implement my own daemon! Thanks for your help, everyboby!! =)