Home | Markdown | Gemini | Microblog
a'! _,,_ a'! _,,_ a'! _,,_
\\_/ \ \\_/ \ \\_/ \.-,
\, /-( /'-,\, /-( /'-, \, /-( /
//\ //\\ //\ //\\ //\ //\\jrei
# Starting ./bin/perldaemon start (or shortcut ./control start) # Stopping ./bin/perldaemon stop (or shortcut ./control stop) # Alternatively: Starting in foreground ./bin/perldaemon start daemon.daemonize=no (or shortcut ./control foreground)
pb@titania:~/svn/utils/perldaemon/trunk$ ./control keys # Path to the logfile daemon.logfile=./log/perldaemon.log # The amount of seconds until the next event look takes place daemon.loopinterval=1 # Path to the modules dir daemon.modules.dir=./lib/PerlDaemonModules # Specifies either the daemon should run in daemon or foreground mode daemon.daemonize=yes # Path to the pidfile daemon.pidfile=./run/perldaemon.pid # Each module should run every run interval seconds daemon.modules.runinterval=3 # Path to the alive file (is touched every loop interval seconds, usable for monitoring) daemon.alivefile=./run/perldaemon.alive # Specifies the working directory daemon.wd=./
$ ./control keys | grep daemon.loopinterval daemon.loopinterval=1 $ ./control keys daemon.loopinterval=10 | grep daemon.loopinterval daemon.loopinterval=10 $ ./control start daemon.loopinterval=10; sleep 10; tail -n 2 log/perldaemon.log Starting daemon now... Mon Jun 13 11:29:27 2011 (PID 2838): Triggering PerlDaemonModules::ExampleModule (last triggered before 10.002106s; carry: 7.002106s; wanted interval: 3s) Mon Jun 13 11:29:27 2011 (PID 2838): ExampleModule Test 2 $ ./control stop Stopping daemon now...
$ ./control keys daemon.loopinterval=10 > new.conf; mv new.conf conf/perldaemon.conf
package PerlDaemonModules::ExampleModule;
use strict;
use warnings;
sub new ($$$) {
my ($class, $conf) = @_;
my $self = bless { conf => $conf }, $class;
# Store some private module stuff
$self->{counter} = 0;
return $self;
}
# Runs periodically in a loop (set interval in perldaemon.conf)
sub do ($) {
my $self = shift;
my $conf = $self->{conf};
my $logger = $conf->{logger};
# Calculate some private module stuff
my $count = ++$self->{counter};
$logger->logmsg("ExampleModule Test $count");
}
1;
cd ./lib/PerlDaemonModules/ cp ExampleModule.pm YourModule.pm vi YourModule.pm cd - ./bin/perldaemon restart (or shortcurt ./control restart)