James Olin Oden wrote:
> Hi All,
> 
> This is really not a beginner question but I'm not sure what list to post it 
> on.
> 
> I've created a daemon library for easily building daemons and at some
> point code was added to handle closing all fd's so the daemonized
> process would not have fd's hanging around it shouldn't have or didn't
> expect to have.   The code to close the fd was using POSIX::close(),
> and this was a bad idea because, though it closes the fd, it leaves
> any perl filehandles associated with the fd hanging around.  This
> makes for really twisty and perplexing bugs.
> 
> So I don't want to do that, but I can't figure out for the life of me
> how to get a hold of all filehandles associated with an fd, or to
> close all filehandles associated with an fd.  Is there a way to do
> this?  I tried walking through the symbol tables, but that won't get
> lexically scoped and localized filehandles.  How does one do this?
> 
> BTW, at this moment I'm looking through perlio.c to try to see how the
> filehandles and fd's are managed internally.  If I had to I could
> write a c routine to do this and expose it through XS.  Any clues in
> this area though, would be nice (like is there something already in
> perlio.c to do this (-:).
> 
> And of course pointing me to a more appropriate list is fine too.
> 
> Thanks...james
> 

All daemons should periodically kill themselves and restart.  This will:

* Close forgotten file handles.
* Free any memory leaks.
* Remove zombie children.
* Do other cleanup.

This is best done by done by setting the daemon in the appropriate
init(8) runlevel.


-- 
Just my 0.00000002 million dollars worth,
  Shawn

Programming is as much about organization and communication
as it is about coding.

I like Perl; it's the only language where you can bless your
thingy.

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to