Jjr*_*ina 17 java signals process
我有一个Java应用程序,它创建一个外部进程并通过InputStream读取进程'stdout.当我完成它时,我需要能够杀死进程.有没有办法向这个过程发送SIGINT信号?(好像我从控制台按下Ctrl + C).
外部进程不是我的代码,我无法修改它.
Luk*_*der 16
您是否可以发送kill -SIGINT <pid>给流程(假设您知道流程ID):
Runtime.getRuntime().exec("kill -SIGINT 12345");
Run Code Online (Sandbox Code Playgroud)
当然,这将构成一个依赖于平台的解决方案......潜在地,您将能够使用此工具,尽管它处于"沙盒模式".但它可能会给你一个想法:
http://commons.apache.org/sandbox/runtime/
另请参阅此相关问题:
如何使用SIGKILL杀死java中的Linux进程Process.destroy()执行SIGTERM
对于从 Google 到达这里的其他人,如果您想将信号发送到当前进程(又名 JVM),您可以使用sun.misc.Signal.raise()方法。就我个人而言,我需要它是因为我正在使用 JNI 库。
您是否将外部程序作为 运行java.lang.Process?由于 Process 类有一个destroy()方法。
| 归档时间: |
|
| 查看次数: |
23064 次 |
| 最近记录: |