在Eclipse控制台中向运行程序发送SIGINT(Ctrl-C)
我在Eclipse里设置了一个运行配置,现在需要给程序发送一个SIGINT信号(就是按Ctrl+C)。程序里有一些清理代码会在收到SIGINT后运行,所以直接按Eclipse里的“终止”按钮是没用的(我想它们发送的是SIGKILL信号)。在控制台里输入CTRL+C也没有效果。
请问我该如何给在Eclipse控制台里运行的进程发送SIGINT信号呢?
顺便说一下,我正在运行一个Twisted守护进程,需要Twisted正确关闭,这只有在收到SIGINT时才会发生。
5 个回答
0
这似乎仍然是一个未解决的问题:https://bugs.eclipse.org/bugs/show_bug.cgi?id=38016
为了让信息更完整:如果你来这里是想找一个方法来结束从 System.in
读取的行,Ctrl + Z 在我这里(Windows系统)是有效的。
2
你可以通过一行命令来发送指令:
kill -SIGINT $(ps aux | grep ProgrammName | grep -v grep | awk '{print $2}')
先获取进程的ID,然后发送sigint信号。
9
如果你能用像 ps 这样的工具找到正在运行的程序,你可以用 kill 命令给它发送一个 SIGINT 信号。这通常意味着这个程序可能是 eclipse 的一个子进程。
kill -s INT <pid>