当前位置: 首页 > 面试题库 >

如何从Java程序中异步运行Shell脚本

薛华奥
2023-03-14
问题内容

我想从Java程序中异步运行Shell脚本-即在Java程序开始执行该Shell脚本之后,它会继续执行其他操作-并且仅当Shell脚本返回对其的响应时才做进一步的工作..即,它不会显式停止并等待shell脚本的响应。

这可能/可行吗?如何实现这种功能?

基本上,我将使用一个将管理所有这些服务器的服务器来监视多个服务器-为此,它将在每个服务器上运行shell脚本…因为有许多服务器,因此在Java中建议不要使用线程数量超过cpu核心的数量…因此,我需要一个不依赖线程的解决方案(由于线程限制)…以便我可以同时(或几乎同时)触发许多此类shell脚本而无需等待这些脚本之一响应(因为等待会影响其他Shell脚本命令的处理)…另一个问题..需要在本地计算机或远程计算机上调用Shell命令,并且两种类型的响应都需要响应Shell脚本执行(即本地执行和远程执行)…


问题答案:

你有尝试过吗?

您可以尝试类似:

ProcessBuilder builder = new ProcessBuilder("your command to launch script");
Process process = builder.start();

默认情况下,它不会等待过程完成,因此您可以下一步执行代码。

并且,如果您想在流程完成后进行一些处理,可以尝试:

int exitVal = process.waitFor();


 类似资料:
  • 问题内容: 我正在尝试从Java执行Bash Shell脚本,并且使用这段代码可以正常运行。 上面的代码异步运行良好。但是我想实现的是同步执行代码。我希望Java进程等到脚本执行完成后再执行下一批代码。 总而言之,我希望在批处理文件(“ myscript.sh”)完成执行 之后 执行“打印语句-脚本成功执行”。 谢谢 问题答案: 你要等待进程结束,这是WAITFOR()这样的

  • 问题内容: 我尝试谷歌搜索答案,但没有运气。 我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。 例如我要执行 如何做到这一点? 问题答案: 只需确保python可执行文件在PATH环境变量中,然后在脚本中添加 细节: 在文件job.sh中,放入 执行此命令以使脚本可运行: 运行 :

  • 问题内容: 从Java运行Unix命令非常简单。 但是可以从Java代码运行Unix Shell脚本吗?如果是,从Java代码中运行Shell脚本是一个好习惯吗? 问题答案: 你应该真正看一下Process Builder。它确实是为这种事情而构建的。

  • 问题内容: 我快要解决这个问题了。 下面是代码: 问题答案: 您的代码是正确的,我相信您不会收到异常,如果您使用进行阅读,则不会得到任何东西。 已经说过,现在命令是100%以这种方式执行,这是因为您正在回显某些内容,需要使用来将其读回。 检查以下示例,该示例将成功创建一个名目录并打印您正在回显的内容。为了将其放入日志文件,恐怕您可以使用“>”来完成它,您可能必须使用一些编辑器命令或使用Java创建

  • 问题内容: Bash脚本非常有用,可以节省很多编程时间。那么,如何在C ++程序中启动bash脚本呢?另外,如果您知道如何使用户成为超级用户,那也会很好。谢谢! 问题答案: 使用功能。

  • 问题内容: 我试图运行一个异步进程,但我不希望程序等到这些进程执行结束。我发现了这个问题,如何从Java程序中异步运行shell脚本,但是它没有我想要的答案。 我正在做的只是运行bash进程,而在运行bash进程后,我不希望Java程序等到完成为止。这是我所做的: 我还在main方法的末尾放出了另一张印刷品,因此得到以下输出: 但是,程序不会终止,因为这两个进程尚未终止。 我该如何解决这个问题?