CTRL + C在msys2中不起作用

时间:2017-01-10 09:08:08

标签: bash cygwin msys2

我使用Msys1多年,习惯于 CTRL + C 用于杀死我在shell中启动的进程。

从Msys1更新为Msys2 CTRL + C 不再起作用。 例如:我开始“make”按 CTRL + C 。 Shell提示完成并允许输入更多命令,但make.exe仍在运行+工作。

我的分析结果
在Msys1中:shell.exe(12345)启动make.exe(23456)并且make.exe(23456)具有其父项为(12345)的信息。
在Msys2:shell.exe(12345)启动make.exe(23456)和make.exe(23456)有信息,其父级是(34567),它不再存在。所以我猜Msys2使用一个额外的过程来启动子进程。
我试过bash.exe,shell.exe,mintty.exe,...似乎都有同样的问题。

内容我找到了搜索
这张票只关注缺失的信号类型 - >我不在乎。
https://sourceforge.net/p/msys2/tickets/135/

此邮件列表中的问题似乎接近我的问题,但我不明白我应该更改什么,或者是否只能在msys2实现中进行更改。 (什么是CREATE_NEW_PROCESS_GROUP?以及如何更改它):
https://www.cygwin.com/ml/cygwin/2012-08/msg00062.html

最诚挚的问候 路加

1 个答案:

答案 0 :(得分:2)

看起来mintty为MSYS2提供了默认的终端(请注意,这与在其中运行的shell不同)。如果是这样,那么" Ctrl + C 突然杀死本机(例如MSYS2编译的)程序而不是发送可捕获信号"问题与https://superuser.com/questions/606201/how-to-politely-kill-windows-process-from-cygwinMSYS2 wiki porting FAQ上描述的问题相同。

如果您在使用Windows'时尝试了什么?默认终端(例如,从开始菜单中使用cmd.exe时),这就是您所看到的问题。