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

我想从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程序中异步运行Shell脚本 的全部内容, 来源链接: utcz.com/qa/431898.html

回到顶部