Hi folks, 

I just wanted to register a new module via

  https://pause.perl.org/pause/authenquery?ACTION=apply_mod

but my IE5.5 wouldn't let me submit the page.  Pressing the 'submit' 
button did nothing.  A cursory glance at the HTML source showed that 
the <form> entry is intertwined with the <table><td> etc. entries, so 
this might be the problem (apart from using IE in the first place; >:-( 
you sometimes simply have to Deal with the Devil).


Anyway, here is the module that I'd like to register:

  Proc::Nanny - supervise server/daemon processes

  Module List Chapter 4) "Operating System Interfaces"

  Flags: adpO

  Standard Perl License


Rationale:
==========

It is very advisable to supervise long-running server processes 
(daemons) to be able to restart them when they crash or to restart them 
periodically on purpose to avoid troubles caused by memory leaks et 
al.  This is normally faciliated by forking off the real server process 
and have the parent act as a baby-sitter, basically wait()ing for the 
child and re-forking it when the server process exits.

This module intends to make this task easy by providing the most common 
functionality through a simple and clear interface.

Example (from SYNOPSIS):

  use Proc::Nanny;

  # initialize server process...

  # simple usage: just babysit a single server process
  Proc::Nanny->start_babysitting();

  # child returns to act as a server from here on...


  # more complex usage: fork off two servers, restart them after 10 
minutes
  # if they haven't exited in the meantime by sending them SIGHUP and
  # log all activity in /var/log/myservers.log

  my $nanny = new Proc::Nanny (watchdog_timeout => 600,
                               watchdog_signal => "SIGHUP",
                               nr_of_children => 2,
                               logfile => "/var/log/myservers.log",
                              ); 
  $nanny->start_babysitting();

  # child processes continue...
  if ($nanny->who_am_i == 0) {
    # first child does this...
    do_work();
  } else {
    # the other one that...
    exec(@command);
  }

Thanks!

Roland
--
[EMAIL PROTECTED]

Reply via email to