【发布时间】:2017-08-10 15:53:54
【问题描述】:
我有一个 java 应用程序,我通过它在 linux 系统上运行基于控制台的程序,我正在读取这些程序的输出,然后我的 java 应用程序将其发送到网页。
但是一旦我关闭我的 java 应用程序,所有进程都会“卡住”,或者它们只是简单地崩溃。因此,每次我想对我的 java 应用程序进行一些更改并且需要重新启动它时,我还必须关闭从我的应用程序运行的所有进程。我想在关闭我的应用程序时保存他们的 PID,然后根据保存的进程 PID 再次控制(输出流)这些进程。
有什么办法吗?
我正在运行这样的程序:
ProcessBuilder processBuilder = new ProcessBuilder(new String[] { "su", "-
s", "/bin/sh", "myuser", "-c", "java -jar myjar.jar" });,
Process p = processBuilder.start();
编辑:
我的问题是找不到进程 PID 我的问题是我的 Java 应用程序启动的子进程在我的 Java 应用程序关闭/终止后崩溃,我需要它们继续运行,即使我的应用程序正在重新启动/停止。
【问题讨论】:
-
在 unix.stackexchange 上,我发现了这个:unix.stackexchange.com/questions/31824/… 你能确认这解决了你的问题,然后我会在这里关闭你的问题吗?
-
不,这并不能解决我的问题,它与 java 相关,与终端无关。我需要在java而不是终端中“分离”我的进程。我需要以某种方式改变从 java 应用程序启动进程的方式。这就是我寻求帮助的原因。
标签: java process parent-child