脚本进入远程服务器并使用Net :: SSH :: Perl运行
shell脚本“snap.sh”.
这个shell脚本需要大约10分钟才能结束,我的perl程序会一直等到输出结束.
我想在远程服务器上运行shell脚本,程序应关闭SSH会话,而不必等待脚本在远程服务器上完成.
这个shell脚本需要大约10分钟才能结束,我的perl程序会一直等到输出结束.
我想在远程服务器上运行shell脚本,程序应关闭SSH会话,而不必等待脚本在远程服务器上完成.
my $ssh = Net::SSH::Perl->new($host,protocol =>2); $ssh->login($username,$password); my $cmd="./bin/snap.sh"; my($stdout,$stderr,$exit) = $ssh->cmd($cmd);
解决方法
未经测试,但你不能只做什么ssh -f吗?
my $ssh = Net::SSH::Perl->new($host,$password); defined (my $pid = fork) or die "fork: $!"; if ($pid) { close $ssh->sock; undef $ssh; } else { my $cmd="./bin/snap.sh"; my($stdout,$exit) = $ssh->cmd($cmd); POSIX::_exit($exit); }