当前位置: 首页 > 知识库问答 >
问题:

从Java向外部进程发送SIGINT信号

万俟穆冉
2023-03-14

我创建了基于JAVA SWT的GUI,它可以与外部C可执行文件进行交互。我的GUI使用ProcessBuilder调用这个c进程。在C进程可执行文件中,我重载了信号函数(CTRL C,CTRL D)。我的问题是如何从JavaSWTGUI向这个外部C进程发送CTRL C?我试过了。getRuntime()。链接中提供了exec((kill SIGINT pid):“如何将SIGINT信号从Java发送到外部进程?”来自java代码。当C进程正在执行时,我也尝试从shell控制台发送kill SIGINT pid,有时它似乎没有响应。呼叫kill SIGINT本身有问题吗?有人能提供替代方案来实现这一点吗?提前谢谢。

共有1个答案

仲孙景胜
2023-03-14

如果您试图从控制台向进程发送信号SIGINT,但它没有反应,那么这与Java无关,但您的进程就是不能处理这个信号。

尝试发送更激进(不可忽略)的SIGKILL信号。

 类似资料:
  • 问题内容: 在终端中,我执行了一个主父进程,该进程将派生一个子进程。在父进程和子进程中,我都实现了SIGINT信号处理程序。因此,当我按“ ctrl + c”时,是否将同时调用两个处理程序?还是我需要在父进程的处理程序中显式调用子进程的信号处理程序? 我查看了这篇文章: Ctrl-C如何终止子进程?表示“ SIGINT信号由终端线路规则生成,并广播到终端的 前台 进程组中的所有进程 ”。我只是不太

  • 问题内容: 我正在使用以下命令在ubuntu中连接“ / bin / bash”: 这里的cmd是一个字符串,其中包含我从进程读取和写入的不同命令。 现在我遇到了一种情况,我使用ssh登录到远程机器,并且在将信息写入ext进程时,要从远程计算机注销,我必须发送如下控制字符: 为了正常退出会话并返回我的本地计算机。假设cmd是String类型,我如何将此chracter 写入进程? 问题答案: AS

  • 我正在使用Javaexec运行bash脚本,但当我进入CTRL C时,Java进程将退出,子进程也将退出,如何在JVM关闭后保持子进程运行? 父母亲上海: 我已经在这里和这里阅读了类似问题的答案,例如,使用nohup在脚本运行命令中启动父bash脚本,或者使用trap命令来阻止信号,在我的研究中,它可以工作,例如“tail-f somefile”,但不适用于我的用例“ffmpeg-params”,

  • 问题内容: 我有一个Java应用程序。我想知道发送此信号的进程的pid。 那可能吗? 问题答案: 两种Linux专用方法是和,它们允许程序接收有关已发送信号的 非常 详细的信息,包括发送方的PID。 调用并传递给它,其中包含所需的信号处理程序,并且设置了标志。使用此标志,您的信号处理程序将接收 三个 参数,其中一个是包含发送者的PID和UID的结构。 从中调用和读取结构(通常以某种选择/轮询循环的

  • 我有一个应用程序,它在一个单独的线程中的while循环中重复运行一些东西,直到用户触发关闭信号。我可以通过在工作线程中设置(易失性)布尔字段,将信号从主线程发送到工作线程,但是否有其他关闭/中断线程的方法,例如通过“java”中的任何实用程序。util。并发'? 我尝试调用ExecutorService的shutdown()或shutdownNow()方法,但它们无法停止工作线程。同时调用shut

  • 问题内容: 我可以发送消息给父进程吗? 主 子进程 问题答案: 简而言之: 较长的例子,我前段时间写过: