Path: blob/main/dns/dnscheckengine/files/patch-apps-dnscheck-dispatcher.pl
16151 views
*** apps/dnscheck-dispatcher.pl Tue Jun 29 04:15:59 20101--- apps/dnscheck-dispatcher.pl Sun Jul 4 19:22:42 20102***************3*** 43,49 ****4%running5%reaped6%problem7! $debug8$verbose9$check10$limit11--- 43,49 ----12%running13%reaped14%problem15! $user16$verbose17$check18$limit19***************20*** 54,59 ****21--- 54,60 ----22$exit_timeout23$savelevel24%levels25+ $debug26];2728%running = ();29***************30*** 75,81 ****31ERROR => 4,32CRITICAL => 5,33);34!35# Kick everything off36main();3738--- 76,83 ----39ERROR => 4,40CRITICAL => 5,41);42! # user to run as43! $user = 'nobody';44# Kick everything off45main();4647***************48*** 124,130 ****49sub setup {50my $errfile = $check->config->get("daemon")->{errorlog};51my $pidfile = $check->config->get("daemon")->{pidfile};52!53@saved_argv = @ARGV; # We'll use this if we're asked to restart ourselves54GetOptions('debug' => \$debug, 'verbose' => \$verbose);55openlog($check->config->get("syslog")->{ident},56--- 126,135 ----57sub setup {58my $errfile = $check->config->get("daemon")->{errorlog};59my $pidfile = $check->config->get("daemon")->{pidfile};60! my $uid;61! unless ($uid = (getpwnam($user))[2]) {62! die "Attempt to run dispatcher as non-existent user or as root\n";63! }64@saved_argv = @ARGV; # We'll use this if we're asked to restart ourselves65GetOptions('debug' => \$debug, 'verbose' => \$verbose);66openlog($check->config->get("syslog")->{ident},67***************68*** 149,154 ****69--- 154,161 ----70open PIDFILE, '>', $pidfile or die "Failed to open PID file: $!";71print PIDFILE $$;72close PIDFILE;73+ # become non-root74+ $>= $uid;75$SIG{CHLD} = \&REAPER;76$SIG{TERM} = sub { $running = 0 };77$SIG{HUP} = sub {787980