Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sshj使用nohup执行脚本_Java_Ssh_Jsch_Sshj - Fatal编程技术网

Java sshj使用nohup执行脚本

Java sshj使用nohup执行脚本,java,ssh,jsch,sshj,Java,Ssh,Jsch,Sshj,我需要通过sshj执行shell脚本并断开连接,而无需等待脚本完成。脚本可能需要很长时间才能完成,因此我将创建额外的Java代码来定期检查脚本的结果。如何在不等待shell脚本完成的情况下断开sshj会话?使用&结束命令。例如: nohup /usr/bin/longRunningProcess & 一旦该命令被提交(例如,提交该命令,然后调用command.join()),您就可以断开连接,longRunningProcess将在后台继续。另一件需要担心的事情是命令的输出。您必须将s

我需要通过sshj执行shell脚本并断开连接,而无需等待脚本完成。脚本可能需要很长时间才能完成,因此我将创建额外的Java代码来定期检查脚本的结果。如何在不等待shell脚本完成的情况下断开sshj会话?

使用
&
结束命令。例如:

nohup /usr/bin/longRunningProcess &
一旦该命令被提交(例如,提交该命令,然后调用
command.join()
),您就可以断开连接,
longRunningProcess
将在后台继续。另一件需要担心的事情是命令的输出。您必须将
stdout
stderr
重定向到其他地方,例如
/dev/null
文件。因此,该命令将如下所示:

nohup /usr/bin/longRunningProcess > /dev/null 2>&1 &
Java代码类似于:

SSHClient client = ...
Session session = ...
Command command = session.exec(yourCommand);

// Wait for command to be submitted
command.join();

// Do some error checking by checking command.getExitStatus()
...

// Disconnect
session.close();
client.close();