是否可以将应用程序容器化到Docker容器中,然后在运行时创建新进程? 我有这样的东西:
launchProcess() {
Runtime runtime = Runtime.getRuntime();
String launchProgramCommand = "some command that launches a program";
Process process = runtime.exec(launchProgramCommand);
}
答案 0 :(得分:1)
从技术上讲这是可能的,但是您会遇到一些问题。
当docker容器停止时,您的主应用程序将退出,但外部进程不一定会正常退出。如果希望它们正常退出,则必须实现shutdown hook并使用Process.waitFor等到外部进程终止。或者,您可以使用Process.destroy破坏外部过程,该过程取决于Java实现。
您还可以获取进程(How to get a process id of exe running through java program)的pid
并发送适当的信号以使用kill
命令终止它。