diff -up logwatch-7.3.6/scripts/services/init.pom logwatch-7.3.6/scripts/services/init --- logwatch-7.3.6/scripts/services/init.pom 2008-10-20 13:17:46.000000000 +0200 +++ logwatch-7.3.6/scripts/services/init 2008-10-20 13:41:17.000000000 +0200 @@ -16,7 +16,8 @@ $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} while (defined($ThisLine = <STDIN>)) { if (( $ThisLine =~ /open\(.*\): No such file or directory/) or ( $ThisLine =~ /Id "r" respawning too fast: disabled for 5 minutes/) or - ( $ThisLine =~ /Re-reading inittab/)) { + ( $ThisLine =~ /Re-reading inittab/) or + ( $ThisLine =~ /.* main process ended, respawning/)) { # We don't care about these } elsif ( $ThisLine =~ s/Switching to runlevel: (.)\s*$/$1/ ) { @@ -34,9 +35,15 @@ while (defined($ThisLine = <STDIN>)) { chomp ($ThisLine); $ReExecInit++; } + elsif ( $ThisLine =~ /Re-executing \/sbin\/init/) { + $ReExecSbinInit++; + } elsif ( ($Name,$Cause) = ($ThisLine =~ /(.*) main process \([0-9]*\) killed by (.*) /)) { $ProcessKilled{"$Name,$Cause"}++; } + elsif ( ($Name, $Status) = ($ThisLine =~ /(.*) main process \([0-9]*\) terminated with status ([0-9]*)/)) { + $ProcessTerminated{"$Name,Status"}++; + } else { # report any unmatched entries push @OtherList,$ThisLine; @@ -53,6 +60,11 @@ if ($ReExecInit) { print "\n\nRe-execs of init: $ReExecInit times\n"; } +if ($ReExecSbinInit) { + print "\n\nRe-executing \/sbin\/init/: $ReExecSbinInit times\n"; +} + + if ((keys %ProcessKilled) and ($Detail >=10)) { print "\nKilled processses:\n"; foreach (keys %ProcessKilled) { @@ -61,6 +73,14 @@ if ((keys %ProcessKilled) and ($Detail > } } +if ((keys %ProcessTerminated) and ($Detail >=10)) { + print "\nTerminated processses:\n"; + foreach (keys %ProcessTerminated) { + my ($Name,$Status)=split ","; + print " Process " . $Name. " terminated with status " . $Cause . ": " . $ProcessTerminated{"$Name,$Status"} . " Time(s)\n"; + } +} + if ($#OtherList >= 0) { print "\n**Unmatched Entries**\n"; print @OtherList;