我已经在 Eclipse 中设置了运行配置,需要将 SIGINT ( Ctrl+ C) 发送到程序。在 SIGINT 之后运行的程序中有清理代码,因此按 Eclipse 的“终止”按钮将不起作用(我认为它们会发送 SIGKILL)。在控制台中输入CTRL+C也不起作用。
如何将 SIGINT 发送到在 Eclipse 控制台内运行的进程?
(FWIW 我正在运行一个 Twisted 守护程序,需要 Twisted 正确关闭,这只发生在 SIGINT 上)
如果您可以使用 ps 等实用程序确定进程,则可以使用 kill 向其发送 SIGINT。该程序可能是eclipse的子进程。
kill -s INT <pid>
您可以通过一行发送命令:
kill -SIGINT $(ps aux | grep ProgrammName | grep -v grep | awk '{print $2}')
获取进程 ID,然后发送 sigint 信号
在某些版本中,您可以执行以下操作。
在 Debug 透视图中,您可以打开一个名为“Signals”(窗口/显示视图/信号)或左下图标)的视图。
您将获得所有支持信号的列表。右键单击并“使用信号恢复”将为您提供所需的结果。
我正在通过修改Artur Czajka 的评论来回答。
您可以使用pkill -SIGINT -f ProgramName
. 解释:pkill
类似于killall
,-SIGINT
说明要使用的信号,-f
使其在这种情况下工作得更好(它将查看参数和内容,而不仅仅是命令名称),并且ProgramName
是 pkill 的目标。
这似乎仍然是一个悬而未决的问题: https ://bugs.eclipse.org/bugs/show_bug.cgi?id=38016
只是为了完整起见:如果您来这里是为了找到一种方法来终止读取行System.in
,
Ctrl+Z为我工作(在 Windows 上)。