> -----Original Message-----
> From: Chad Kellerman [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, August 27, 2002 8:33 AM
> To: [EMAIL PROTECTED]
> Subject: eval on a $SIG{KILL}- newbie question
>
>
> Hello,
> I am writing a script on a linux server use Net::SSH::Perl. Every
> once in a while the ssh connection to a remote server dies or it just
> can't connect. the perl module send a $SIG{KILL} to the script when
> ever this happens. Which isn't what I want. I am trying to put the
> kill in an eval stattement and have it wait a few minutes before it
> tries to connect again. But I am never getting past the eval
> statement.
>
> Here's my code:
>
> eval { local $SIG{KILL} = sub {die "died" };
> alarm 10;
> $ssh->login($user);
> ($out, $error, $exit) = $ssh->cmd($cmd);
> alarm(0);
> }; # end of eval statement
> if ($@ =~ /died/) {
> try_again($host_ip, $host_name, $group_dir) = @_;
> }
>
> It the try_again sub I have it email me (which works) but I have it
> print that it's entering the failed subroutine but it never does that.
>
> Does anyone see what I am doing wrong? Thanks again for
> all the help.
Are you saying Net::SSH::Perl sends SIGKILL to the calling script? You can't
catch SIGKILL.
If you're trying to catch the 10 second timeout, use $SIG{ALRM}.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]