gpt4 book ai didi

java - sshj 使用 nohup 执行脚本

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:56 27 4
gpt4 key购买 nike

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

最佳答案

& 结束你的命令。示例:

nohup /usr/bin/longRunningProcess &

一旦该命令被提交(例如,提交命令然后调用Command.join()),您可以断开连接,longRunningProcess 将在后台继续。另一件需要担心的事情是命令的输出。您必须将 stdoutstderr 重定向到其他地方,例如 /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();

关于java - sshj 使用 nohup 执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17237210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com