Re: POE::Wheel::Run and sig_child
[email protected] (Mike Schilli) Thu, 22 Apr 2010 21:33:20 -0700 (PDT)
| Newsgroups | perl.poe |
|---|---|
| Message-ID | <alpine.LRH.1.00.1004222130320.19219@pyramidlake.greatamerica.corp.yahoo.com> |
Couple of more issues resolved, this time regarding daemonization of POE processes, see below. Thanks! -- Mike Mike Schilli [email protected] ---------- Forwarded message ---------- From: "[email protected]" <[email protected]> To: Mike Schilli <[email protected]> Subject: Re: POE::Wheel::Run and sig_child Date: Thu, 22 Apr 2010 21:23:09 -0700 Hmm, I didn't realize it was myself who replied to that thread ;) If I remember correctly it's because POE caches the signal handlers on startup ( not POE::Kernel->run() time BUT during the use/compile time ) and if you fork afterwards, it gets confused... That's why you generally need to call the POE::Kernel->has_forked() sub after you fork so it can futz with the internals - http://search.cpan.org/~rcaputo/POE-1.289/lib/POE/Kernel.pm#has_forked P.S. Could you please post this to the mailinglist too? That way, future POE users could find the answer in the archives :) ~Apocalypse Mike Schilli wrote: > On Thu, 22 Apr 2010, [email protected] wrote: > >> Oh, you could grep the mailinglist for daemonization issues - there >> were a few posts about that some weeks ago... The advice in there >> probably would apply to you :) > > OMG, you did it again, jackpot! I added the BEGIN block and all of > a sudden the daemon works just fine. > > I guess you referred to this post: > > http://www.mail-archive.com/[email protected]/msg04514.html > > However, I couldn't find an explanation on why this is required ... do > you have a pointer ready by any chance? > > Thanks again! > > -- Mike > > Mike Schilli > [email protected] > >> >> In a nutshell: Don't load POE until you've daemonized... sample code: >> >> BEGIN { >> use Net::Server::Daemonize; # or any other daemonization module >> daemonize(); >> } >> use POE; >> >> ~Apocalypse >> >> Mike Schilli wrote: >>> On Wed, 21 Apr 2010, [email protected] wrote: >>> >>>> Ah, Let me fix a few bugs/typos in your code then it'll work as >>>> intended! >>> >>> Wow, thanks a lot for that, it was really helpful -- let me work >>> that in >>> and come back with more questions :) I have a weird case where after >>> a daemon forks and then starts a POE kernel all of a sudden doesn't >>> handle signals properly anymore, but I'll try to figure it out myself >>> with the info you sent. >>> >>> Thanks again! >>> >>> -- Mike >>> >>> Mike Schilli >>> [email protected] >>