From: <buc...@us...> - 2008-12-08 05:56:26
|
Revision: 98 http://devmon.svn.sourceforge.net/devmon/?rev=98&view=rev Author: buchanmilne Date: 2008-12-08 05:56:18 +0000 (Mon, 08 Dec 2008) Log Message: ----------- Improve error handling, by opening log file immediately after forking, and returning non-zero exit codes when exiting due to error (e.g. log_fatal) Modified Paths: -------------- trunk/modules/dm_config.pm Modified: trunk/modules/dm_config.pm =================================================================== --- trunk/modules/dm_config.pm 2008-12-07 20:02:02 UTC (rev 97) +++ trunk/modules/dm_config.pm 2008-12-08 05:56:18 UTC (rev 98) @@ -262,6 +262,9 @@ # Daemonize if need be daemonize(); + # Open the log file + open_log(); + # Set our pid $g{'mypid'} = $$; @@ -288,9 +291,6 @@ $pid_handle->close; } - # Open the log file - open_log(); - # Autodetect our nodename on user request if($g{'nodename'} eq 'HOSTNAME') { my $hostname_bin = bin_path('hostname'); @@ -356,12 +356,12 @@ if($exceeded > 1) { do_log("Exceeded cycle time ($poll_time seconds).", 0); $g{'sleep_time'} = 0; - quit() if $g{'oneshot'}; + quit(0) if $g{'oneshot'}; } # Otherwise calculate our sleep time else { - quit() if $g{'oneshot'}; + quit(0) if $g{'oneshot'}; $g{'sleep_time'} = -$exceeded; $g{'sleep_time'} = 0 if $g{'sleep_time'} < 0; # just in case! do_log("Sleeping for $g{'sleep_time'} seconds.", 1); @@ -1032,10 +1032,10 @@ # Log and die sub log_fatal { - my ($msg, $verbosity) = @_; + my ($msg, $verbosity,$exitcode) = @_; do_log($msg, $verbosity); - &quit; + quit(1); } @@ -1183,7 +1183,7 @@ do_log("Done",0); # Now quit - &quit; + &quit(0); } @@ -1854,7 +1854,7 @@ } # Now quit - &quit; + &quit(0); } @@ -2010,7 +2010,7 @@ open(STDERR, "+>&STDIN"); # Define ourselves as the master - $0 = 'devmon[master]'; + $0 = 'devmon[master]'; # Set up our signal handlers again, just to be sure $SIG{INT} = $SIG{QUIT} = $SIG{TERM} = \&quit; @@ -2033,7 +2033,7 @@ redo FORK; } elsif($! ne '') { - log_fatal("Can't fork: $!"); + log_fatal("Can't fork: $!",0); } } } @@ -2101,6 +2101,8 @@ # Sub to call when we quit, be it normally or not sub quit { + my ($retcode) = @_; + $retcode = 0 if (!defined $retcode); $g{'shutting_down'} = 1; @@ -2125,7 +2127,7 @@ } - exit 0; + exit $retcode; } END { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |