每当进程在stdout上严重打印时,如果我试图通过发送信号"ctrl + c"终止进程,进程不会立即停止。 但是,如果我在文件中redirect输出,如果按"ctrl +c" ,进程立即停止。 Infact如果我正在使用GNU screen ,并且我的进程正在输出严重的stdout ,那么我无法切换tab 。 为什么是这样的行为
该过程可以产生比networking和屏幕组合显示速度快得多的速度。
当你点击ctrl – C时,由于所有输出引起的networking阻塞,这个键序列可能需要一些时间才能到达运行进程的服务器; 而当进程被终止时,由于在各个地方进行缓冲,所有已经产生的输出将被发送到屏幕上需要相当长的时间:首先是服务器上的networking缓冲器,例如在路由器上传送的分组缓冲器,在显示系统上inputnetworking队列,然后inputssh / screen / X windows的input缓冲区(取决于你正在运行的screen )。
当使用screen切换选项卡时,基本上有同样的问题: ctrl -A A序列可能会延迟到服务器的路由, screen可能会立即切换显示的terminal,但只有在pipe道中已经显示的所有内容你的本地系统。