29

我已经在 Eclipse 中设置了运行配置,需要将 SIGINT ( Ctrl+ C) 发送到程序。在 SIGINT 之后运行的程序中有清理代码,因此按 Eclipse 的“终止”按钮将不起作用(我认为它们会发送 SIGKILL)。在控制台中输入CTRL+C也不起作用。

如何将 SIGINT 发送到在 Eclipse 控制台内运行的进程?

(FWIW 我正在运行一个 Twisted 守护程序,需要 Twisted 正确关闭,这只发生在 SIGINT 上)

4

5 回答 5

9

如果您可以使用 ps 等实用程序确定进程,则可以使用 kill 向其发送 SIGINT。该程序可能是eclipse的子进程。

kill -s INT <pid>
于 2012-01-11T05:46:17.850 回答
2

您可以通过一行发送命令:

 kill -SIGINT $(ps aux | grep ProgrammName | grep -v grep | awk '{print $2}') 

获取进程 ID,然后发送 sigint 信号

于 2015-02-20T08:53:04.977 回答
0

在某些版本中,您可以执行以下操作。

在 Debug 透视图中,您可以打开一个名为“Signals”(窗口/显示视图/信号)或左下图标)的视图。

您将获得所有支持信号的列表。右键单击并“使用信号恢复”将为您提供所需的结果。

于 2020-05-18T14:12:27.993 回答
0

我正在通过修改Artur Czajka 的评论来回答。

您可以使用pkill -SIGINT -f ProgramName. 解释:pkill类似于killall-SIGINT说明要使用的信号,-f使其在这种情况下工作得更好(它将查看参数和内容,而不仅仅是命令名称),并且ProgramName是 pkill 的目标。

于 2021-01-26T17:59:04.663 回答
0

这似乎仍然是一个悬而未决的问题: https ://bugs.eclipse.org/bugs/show_bug.cgi?id=38016

只是为了完整起见:如果您来这里是为了找到一种方法来终止读取行System.inCtrl+Z为我工作(在 Windows 上)。

于 2016-07-14T12:03:15.307 回答