【问题标题】:send SIGINT signal from Java to an external process将 SIGINT 信号从 Java 发送到外部进程
【发布时间】:2013-06-30 08:52:34
【问题描述】:

我创建了基于 JAVA SWT 的 GUI,它与外部 C++ 可执行文件交互。我的 GUI 使用 ProcessBuilder 调用这个 c++ 进程。在 C++ 进程可执行文件中,我重载了信号函数(CTRL+c、CTRL+D)。我的问题是如何从 Java SWT GUI 将 CTRL+C 发送到这个外部 C++ 进程中?我尝试了链接中提供的 Runtime.getRuntime().exec((kill SIGINT pid):"How to send SIGINT signal from Java to an external process?" from java code。当 C++ 进程正在执行时,我也尝试从 shell 控制台发送 kill SIGINT pid,它似乎有时没有响应。调用 kill SIGINT 本身是否有问题?谁能提供替代解决方案来实现这一点?提前致谢。

【问题讨论】:

  • 使用kill -INT pid而不是kill SIGINT pid ...你也可以使用kill -s INT pid

标签: java


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-12-11
    • 2018-11-25
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多