通过ssh运行子作业输出速度过快时,emacs术语不能被中断

问题描述

在emacs术语中,可以使用Cc Cc终止子作业(调用term-interrupt-subjob),如果您在本地shell中运行命令而不是通过ssh远程运行命令,则此命令可以正常工作,例如,下面的命令模拟长时间生成详细日志的子作业:

while true; do echo I\'m outputing verbose logging; done;

在本地shell中(用emacs术语),C-c C-c可以终止,如下所示

$ while true; do echo I\'m outputing verbose logging; done;
I'm outputing verbose logging
I'm outputing verbose logging
I'm outputing verbose logging
I'm outputing verbose logging
I'm outputing verbose logging
...
I'm outputin^C verbose logging  // here the C-c C-c was stroke

$ echo $?
130

退出代码中,我们可以看到它被C-c打断了。

当我ssh到远程主机并运行与上述相同的命令并尝试用Cc Cc中断时,会发生问题,似乎“ Cc Cc”只是无法获得发送到远程sh的机会,但是如果我在while循环中添加如下所示的睡眠,它可以被Cc Cc中断,而在远程sh中,我可以看到被中断的作业的退出代码也是130。

# in remote sh,ssh via emacs term
while true; do echo I\'m outputing verbose logging; sleep 1; done;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)