我正在尝试使用Net::OpenSSH
登录远程计算机,并启动后台进程。
my $ssh = Net::OpenSSH->new( $username . "\@" . $host, key_path => $key, async => 1);
$ssh->error and die "Open ssh error: " . $ssh->error;
my $out = $ssh->system("nohup ./apache-jmeter-2.8/bin/jmeter-server > /dev/null &");
print $out;
当它运行时,它会登录到机器,我得到jmeter-server提示符
- 如果我输入ctrl-C,则perl脚本继续运行并且jmeter-server进程正常启动。
我尝试使用 async 参数进行Net::OpenSSH->new()
调用,我也尝试在命令中使用 nohup ,没有任何区别
如何消除ctrl-c
的需要,以便脚本无人值守?
答案 0 :(得分:2)
根据Net::OpenSSH manual,您要提供async => 1标志系统()调用。
async => new()调用中的1没有按照您的想法进行操作