#!perl -w use strict; use Net::SSH2; my $remote_cmd = q{perl -MPOSIX=setsid -wle 'close STDIN;open STDOUT,">","/dev/null";$SIG{HUP}="ignore";fork and exit;setsid;sleep 3; open my $fh, ">", "/tmp/test.txt" or die $!'}; my $ssh = Net::SSH2->new(); $ssh->connect('mychat.dyn.datenzoo.de'); $ssh->auth(username => 'corion', password => 'rGj3HVR4'); sub run($) { my $ch = $ssh->channel; $ch->ext_data('merge'); my $cmd = shift; print "remote>$cmd\n"; $ch->exec($cmd) or die $ssh->error; my ($out,$err) = ('',''); $ch->send_eof; while(!$ch->eof) { if (my ($o, $e) = $ch->read2) { $out .= $o; $err .= $e; } #else { # $ssh->die_with_error; #} }; print $out; print $err; }; run 'rm /tmp/test.txt'; run 'ls -altr /tmp/test.txt'; run $remote_cmd; sleep 1; run 'ls -altr /tmp/test.txt'; sleep 1; run 'ls -altr /tmp/test.txt'; sleep 1; run 'ls -altr /tmp/test.txt';