概述Java Process.Destroy()不会终止所有进程
我有一个使用Runtime.getRuntime()。exec(“myBin”)启动程序的Java进程
这个“myBin”可能会分叉几次来完成它的工作。
我有一个阅读器线程从exec()返回的Process对象的inputStream和ErrorStream中读取“myBin”及其子元素的所有输出,
我的问题是:如果完成这个工作需要太多的时间,我需要杀死这个进程并等待读者线程完成(如果读取EOF的话,线程将完成)
64位DLL入口点覆盖
Metro应用程序是否可以知道其他应用程序?
QT 5.6.1 Designer x64不启动
如何在C中的linux中获得一个进程的PID
在windows中,如何找出哪个进程位于本地networking套接字的另一端?
现在我发现,即使我使用Process.Destroy(),我只能杀死自己和它的所有孩子的“myBin”insead。 所以超时后,EOF永远不会到达,所以读者线程挂起,直到所有的subprocess终止…
有没有办法安全杀死进程和Runtime.exec()启动的所有孩子
我在linux上,跨平台不在我心中。
在linux下从C程序运行多个C程序
我们可以使用exec()给&作为参数来启动后台进程吗?
父进程在继续之前等待所有subprocess完成
阻止用户停止进程
在windows 7 64位的opencv 2.4错误
实现这一点的一个方法是让调用fork的过程保存一个子pID列表。 你可以在mybin中实现一个处理程序来触发杀死“儿童”。
另一个选择是使用线程而不是使用叉子。
主要的问题是,如果你调用fork,它将创建一个新的进程,而这个进程并不依赖父进程。
总结
以上是内存溢出为你收集整理的Java Process.Destroy()不会终止所有进程全部内容,希望文章能够帮你解决Java Process.Destroy()不会终止所有进程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容