Bruno Negrao wrote:

Hi all,

I wrote a Perl module called Proc::Daemontools and I planning to publish
it on CPAN. Before I do this, i�d like to gather some opinions about things
as its name, its functionalities, etc.

Daemontools is a product made by Dan Bernstein designed to control daemons.
It(amongst other things) guarantees that the daemons will never stop
working.

Now, this module interacts only with svc, svok and svstat executables.

Bellow is its Synopsis:
---------------------------------------------------------------------------
use Proc::Daemontools;

# assuming everything is in the default directories
my $svc = new Proc::Daemontools;

or

my $svc = new Proc::Daemontools (
                DAEMONTOOLS_DIR =>"/some-non-default-dir",
                SERVICE_DIR    => "/some-non-default-dir"
            );

my $daemon="qmail-send";

# We want to stop $daemon
if ( $svc->isUp($daemon) ) {
    if ( $svc->down($daemon) ) {  # it returns true if it was successful
        print "OK, $daemon stopped. \n";
    } else {
        print "Ops, $daemon didn�t stop yet. Maybe it is waiting for some".
        " child to exit. Perhaps you want to kill them by yourself...\n";
    }
}

# Now we want it to start
if ( $svc->up($daemon) ) {
    print "OK, $daemon started. \n".
}

$daemon="qmail-smtpd";

# Let�s see what svstat says about $daemon:
print "The current status of $daemon reported by svstat is: " .
      $svc->status($daemon) ."\n";

Any comments will be appreciated,
Bruno Negrao.


Bruno,


I for one think this module would be a very useful tool. Usually when I want some daemontools info I just end up hacking some shell output. This would be much more professional and manageable. The only thing I see as far as changes is that it would be nice to specify a default $daemon when createing the $svc object, for example:

my $svc = new Proc::Daemontools (
                DAEMONTOOLS_DIR =>"/some-non-default-dir",
                SERVICE_DIR    => "/some-non-default-dir",
                DAEMON => "qmail-send"
            );

$svc->isUp(); # Defaults to $svc->isUp("qmail-send");
$svc->isUp("qmail-smtpd"); # Ignores default.

Otherwise I'd love to see this officially on CPAN sometime. :)


Aran





Reply via email to