},
{
+ 'key' => 'pingd-interval',
+ 'section' => 'network_monitoring',
+ 'description' => 'Run ping scans of broadband services at this interval.',
+ 'type' => 'select',
+ 'select_hash' => [ '' => '',
+ 60 => '1 min',
+ 300 => '5 min',
+ 600 => '10 min',
+ 1800 => '30 min',
+ 3600 => '1 hour',
+ 14400 => '4 hours',
+ 28800 => '8 hours',
+ 86400 => '1 day',
+ ],
+ },
+
+ {
'key' => 'ticket_system-default_queueid',
'section' => 'ticketing',
'description' => 'Default queue used when creating new customer tickets.',
unless ($dbh && $dbh->ping) {
warn "WARNING: connection to database lost, reconnecting...\n";
- eval { $FS::UID::dbh = myconnect; };
+ eval { $FS::UID::dbh = myconnect(); };
unless ( !$@ && $FS::UID::dbh && $FS::UID::dbh->ping ) {
warn "WARNING: still no connection to database, sleeping for retry...\n";
use FS::UID qw(dbh adminsuidsetup);
use FS::Record qw( dbh qsearch qsearchs );
use FS::addr_status;
+use FS::Conf;
use Getopt::Std;
use Net::Ping;
# could add others here
);
-my $interval = 300; # seconds
my $timeout = 5.0; # seconds
# useful opts: scan interval, timeout, verbose, max forks
# maybe useful opts: interface, protocol, packet size, no-fork
+my $interval;
+
our %opt;
getopts('vxi:', \%opt);
my $user = shift or die usage();
adminsuidsetup($user);
$FS::UID::AutoCommit = 1;
+if ( !$interval ) {
+ my $conf = FS::Conf->new;
+ $interval = $conf->config('pingd-interval');
+ if ( !$interval ) {
+ debug("no pingd-interval configured; exiting");
+ exit(0);
+ }
+}
+
while(1) {
daemon_reconnect();
my @addrs_to_scan;
freeside-cdrrated $QUEUED_USER
echo "done."
+ echo -n "Starting freeside-pingd: "
+ freeside-pingd $QUEUED_USER
+ echo "done."
+
if [ -e /usr/local/bin/torrus ]; then
echo -n "Starting torrus collector: "
/usr/local/bin/torrus collector --tree=main
echo "done."
fi
+ if [ -e /var/run/freeside-pingd.pid ]; then
+ echo -n "Stopping freeside-pingd: "
+ kill `cat /var/run/freeside-pingd.pid`
+ echo "done."
+ fi
+
if [ -e /var/run/freeside/torrus-srvderive.pid ]; then
echo -n "Stopping freeside-torrus-srvderive: "
kill `cat /var/run/freeside/torrus-srvderive.pid`