print $chan2 "tail -f /var/adm/messages";
print "LINE : $_" while <$chan2>;
$chan2->close;
I'm guessing it thinks it's finished then closes the channel. I didn't realize you meant you needed it open say for hours (for example). My need for the module was to inventory (or change something ) across hundreds of Unix and Linux servers and report the results. It's quick. We can create user accounts and set the password across 500 servers in just a few minutes. Eventually they will get Vintella working and replace the user creation piece. Someday :-)
Have you tried running with Net::SSH2::Debug enabled? I'm curious if it might shed a clue there. Or even printing $! if there was an error somewhere. If it runs 50,000 lines then why not until we tell it to stop.
I haven't run into this myself. The code is still under a year old and not even 1.0 yet. So I'm sure there are surprises yet to be discovered :-)
I'll poke around and see if I can find something that might help us understand how to do this. Cross your fingers.
It might be a good idea to post this question on the net::ssh2 forum. David Robbins has popped on there to help answer questions about the module. It was mentioned to try using POLL(). Personally I never got it working properly (neither have several other developers). I'm feeling that piece of the code is still broken. Perhaps in the next libssh2 update it will be fixed.