Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Net::OpenSSH Problem

by salva (Abbot)
on Sep 11, 2013 at 08:09 UTC ( #1053425=note: print w/replies, xml ) Need Help??

in reply to Net::OpenSSH Problem

system keeps waiting for the remote command (in your case !bash) to exit before returning control to your program and probably !bash is waiting for you to write some commands at the terminal.

Read the first entry on the module FAQ for a description of the issue you are facing.

Is there any online documentation for that device? maybe there is some way to run unix commands without going through the custom shell.

Replies are listed 'Best First'.
Re^2: Net::OpenSSH Problem
by kburns1969 (Novice) on Sep 11, 2013 at 16:28 UTC

    Ok I am a bit closer. I know that !bash ran correctly in the remote session because while it was sitting there I typed the pwd and received the correct result. I guess now I am confused as to why the program is waiting on me to interact with it instead of continuing to run the other commands. Current code below

    -bash-4.1$ ./ # open_ex: ['ssh','-O','check','-T','-S','/home/kburns/.libnet-openssh +-perl/kburns-10.10.10.-20023-380016','-l','kburns','','--'] # _waitpid(20025) => pid: 20025, rc: # open_ex: ['ssh','-S','/home/kburns/.libnet-openssh-perl/kburns-10.10 +.10.-20023-380016','-l','kburns','','--','!bash']

    I typed pwd and it worked so I know !bash ran correctly on the remote end.

    my $ssh = Net::OpenSSH->new($host, user => $USERNAME, password => $PAS +SWORD, str ict_mode => 0); $ssh->error and die "Couldn't establish SSH connection: " . $ssh->erro +r; $ssh->system('!bash') or die "remote command failed: " . $ssh->error; print "!bash done\n"; $ssh->system('pwd') or die "remote command failed: " . $ssh->error; print "pwd done\n"; # never gets here. it hangs
      what happens when you run the following code?
      my $ssh = Net::OpenSSH->new($host, user => $USERNAME, password => $PASSWORD, strict_mode => 0); $ssh->error and die "Couldn't establish SSH connection: " . $ssh->erro +r; $ssh->system('!pwd') or die "remote command failed: " . $ssh->error; print "pwd done\n";
        It runs fine outputting my current home dir. Def a problem of it not giving back control to the script or something ??
        $ssh->error and die "Couldn't establish SSH connection: " . $ssh->erro +r; $ssh->system('!bash') or die "remote command failed: " . $ssh->error; # remote end will look like this after !bash # bp>!bash # [kburns@ssl01-d:Active] ~ # print "will never print this line\n"; $ssh->system('pwd') or die "remote command failed: " . $ssh->error;

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1053425]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2018-05-25 05:21 GMT
Find Nodes?
    Voting Booth?