Perl(SSH到远程主机,发出命令并关闭会话而不等待它完成…)
发布时间:2020-12-16 06:24:21 所属栏目:大数据 来源:网络整理
导读:脚本进入远程服务器并使用Net :: SSH :: Perl运行 shell脚本“snap.sh”. 这个shell脚本需要大约10分钟才能结束,我的perl程序会一直等到输出结束. 我想在远程服务器上运行shell脚本,程序应关闭SSH会话,而不必等待脚本在远程服务器上完成. my $ssh = Net::SSH
脚本进入远程服务器并使用Net :: SSH :: Perl运行
shell脚本“snap.sh”.
这个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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |