When you succeed please write about it - I&#39;d love to read about it!<div>I was interested in writing a deamon in the past but didn&#39;t have time for it and a nice tutorial would probably help a lot.<br><div><br></div>
<div>All best</div><div><br></div><div>Christopher SkrzÄ™tnicki<br><br><div class="gmail_quote">On Sun, Jan 25, 2009 at 02:57, Belka <span dir="ltr">&lt;<a href="mailto:lambda-belka@yandex.ru">lambda-belka@yandex.ru</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="Ih2E3d"><br>
&gt;If you want a normal daemon, you want to look at System.Posix.Process<br>
&gt;to create a proper daemon (forkProcess, createSession; don&#39;t forget to<br>
&gt;close stdOutput (and, errr, Haskell library types: &nbsp;stdin and stderr<br>
&gt;are where? &nbsp;not <a href="http://System.Posix.IO" target="_blank">System.Posix.IO</a> with stdOutput) and reopen them on /<br>
&gt;dev/null, at least if they&#39;re ttys as determined by<br>
&gt;System.Posix.Terminal.queryTerminal). &nbsp;You also want to write out a<br>
&gt;pidfile (/var/run/programname.pid) for use by startproc / killproc,<br>
&gt;and you want to install a handler for sigTERM<br>
&gt;(System.Posix.Signals.installHandler) which sets the exit flag (TVar,<br>
&gt;MVar, IORef, Chan, take your pick). &nbsp;Ideally you also catch sigHUP and<br>
&gt;reload your state.<br>
<br>
</div>Thanks for the guide, Brandon !!<br>
<br>
By the way, I found a piece of code with function (daemonize :: IO () -&gt; IO<br>
()) (<a href="http://sneakymustard.com/2008/12/11/haskell-daemons" target="_blank">http://sneakymustard.com/2008/12/11/haskell-daemons</a>), which is close to<br>
the subject.<br>
<br>
I guess now I&#39;m ready to implement my own daemon!<br>
Thanks for your help, everyboby!! =)</blockquote><div>&nbsp;</div></div></div></div>