John W. Krahn wrote:
dan wrote:
I've written a perl program which, when executed, fork()'s into the
background, doing it's job, so that the ssh session which executed it
can be
closed.
The dilemma I have is the program crashes on random occasions due to an
unknown bug which I can't trace.
Maybe it's a Heisenbug? http://en.wikipedia.org/wiki/Heisenbug
The only method I would have of catching
the bug is to execute it in an ssh terminal and leave it open until it
crashes (which could be hours, days, or weeks). My connection's not the
stablest in the world, so this session may end up being prematurely
disconnected, and I'd still lose the output.
Is there a way or saying that every STDOUT, STDERR, die(), exit(), and
any
error messages can be appended to a specified logfile, so I can maybe
track
this bug? I've done a search on google for logging STDOUT and things,
most
results of which give me modules which I don't really understand how it
would work.
Could anyone simply this for me, or give me any suggestions for things to
try/do/write to make this possible?
You could try this (untested):
BEGIN {
my $log_file = ;
open STDOUT, '>', '/some/dir/logfile' or die "Cannot redirect
STDOUT: $!";
open STDERR, ">&STDOUT" or die "Cannot dup STDOUT: $!";
}
Oops, I pushed the send button too quickly, that should be:
BEGIN {
open STDOUT, '>', '/some/dir/logfile' or die "Cannot redirect STDOUT: $!";
open STDERR, ">&STDOUT" or die "Cannot dup STDOUT: $!";
}
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>