如何解决通过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 举报,一经查实,本站将立刻删除。