首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sshj使用nohup执行脚本

sshj使用nohup执行脚本
EN

Stack Overflow用户
提问于 2013-06-21 21:59:59
回答 1查看 1.1K关注 0票数 3

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

EN

回答 1

Stack Overflow用户

发布于 2014-01-10 04:59:30

使用&结束您的命令。示例:

代码语言:javascript
复制
nohup /usr/bin/longRunningProcess &

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

代码语言:javascript
复制
nohup /usr/bin/longRunningProcess > /dev/null 2>&1 &

Java代码应该是这样的:

代码语言:javascript
复制
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();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17237210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档