diff options
author | Peter Palfrader <peter@palfrader.org> | 2002-06-13 16:49:02 +0000 |
---|---|---|
committer | Peter Palfrader <peter@palfrader.org> | 2002-06-13 16:49:02 +0000 |
commit | 33b736289ace0927c4ac2478d23d878c583307cb (patch) | |
tree | 26b38b4b2110461797fb59aef89e238953e3926f | |
parent | 1de64fc44278f7d47fe7dc92cde196db3fdf6ffa (diff) |
Catch sigs
-rwxr-xr-x | pingd | 35 |
1 files changed, 31 insertions, 4 deletions
@@ -1,14 +1,14 @@ #!/usr/bin/perl -wT # (c) 2002 Peter Palfrader <peter@palfrader.org> -# $Id: pingd,v 1.3 2002/06/11 10:10:34 weasel Exp $ +# $Id: pingd,v 1.4 2002/06/13 16:49:02 weasel Exp $ # use strict; use XML::Parser; use XML::Dumper; use Getopt::Long; -use lib '.'; +use lib qw{ . lib }; use Echolot::Config; use Echolot::Globals; use Echolot::Storage::File; @@ -16,21 +16,48 @@ use Echolot::Scheduler; use Echolot::Conf; use Echolot::Mailin; use Echolot::Pinger; +use Echolot::Stats; $ENV{'PATH'} = '/bin:/usr/bin'; delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; +$SIG{'INT'} = sub { + print "Got SIGINT. committ()ing\n"; + Echolot::Globals::get()->{'storage'}->commit(); + Echolot::Globals::get()->{'storage'}->finish(); + exit 0; +}; +$SIG{'QUIT'} = sub { + print "Got SIGQUIT. committ()ing\n"; + Echolot::Globals::get()->{'storage'}->commit(); + Echolot::Globals::get()->{'storage'}->finish(); + exit 0; +}; +$SIG{'TERM'} = sub { + print "Got SIGTERM. committ()ing\n"; + Echolot::Globals::get()->{'storage'}->commit(); + Echolot::Globals::get()->{'storage'}->finish(); + exit 0; +}; + + Echolot::Config::init(); Echolot::Globals::init(); my $scheduler = new Echolot::Scheduler; $scheduler->add('processmail' , 60 , 0, \&Echolot::Mailin::process ); -$scheduler->add('getkeyconf' , 10*60 , 0, \&Echolot::Conf::send_requests ); +$scheduler->add('getkeyconf' , 3*60 , 0, \&Echolot::Conf::send_requests ); $scheduler->add('ping' , Echolot::Config::get()->{'pinger_interval'}, 0, \&Echolot::Pinger::send_pings ); +$scheduler->add('buildstats' , 60 , 0, \&Echolot::Stats::build ); $scheduler->run(); +#Echolot::Mailin::process(); +#Echolot::Conf::send_requests(); +#Echolot::Stats::build(); -#Echolot::Globals::get()->{'storage'}->commit(); +Echolot::Globals::get()->{'storage'}->commit(); +Echolot::Globals::get()->{'storage'}->finish(); +exit 0; # vim: set ts=4 shiftwidth=4: |