我创建了基于JAVA SWT的GUI,它与外部C ++可执行文件交互。我的GUI使用ProcessBuilder调用此c ++进程。在C ++进程可执行文件中,我有重载信号函数(CTRL + c,CTRL + D)。我的问题是如何从Java SWT GUI将CTRL + C发送到这个外部C ++进程?我尝试了链接中提供的Runtime.getRuntime()。exec((kill SIGINT pid):来自java代码的“How to send SIGINT signal from Java to an external process?”。当C ++进程被激活时,我也尝试从shell控制台发送kill SIGINT pid似乎有时没有响应。调用杀死SIGINT本身有问题吗?有人可以提供替代解决方案来实现这一点吗?先谢谢。
答案 0 :(得分:2)
如果你试图从控制台向你的进程发出SIGINT
信号,但它没有做出反应,那么这与Java无关,但你的进程只是不处理这个信号。
尝试发送更激进(不可忽略)的SIGKILL
信号。