问题描述
我有一个带有控制器的Java Spring REST API,该控制器运行带有ProcessBuilder类的linux命令
。该命令是生成的“查找”命令
问题是使用几天后,我在托管服务器中发现了许多未终止的进程。我不知道他们为什么还在那里而没有终结或被摧毁。 (我用ps -ef命令检查了
这是我的runCmd函数:
public static final BufferedReader runCmd(String cmd) throws IOException,InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("bash","-c",cmd);
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
BufferedReader output = new BufferedReader(new InputStreamReader(process.getInputStream()));
int ret = process.waitFor();
return output;
}
有没有办法确保不再剩下任何流程?
更新
问题仅来自具有非常大的输出流(标准输出)的命令。感谢提示@DuncG
由于此输出很重要,因此我不能忽略它。我必须找到一种消耗它的方法。
关于如何使用可运行线程的任何想法?
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)