linux – 断管不再结束程序?
发布时间:2020-12-13 18:59:24 所属栏目:Linux 来源:网络整理
导读:当您管道两个进程并在管道的“输出”处终止该进程时,第一个进程用于接收“Broken Pipe”信号,该信号通常也会终止它.例如.赛跑 $ do_something_intensive | less 然后退出较少用于立即返回到SuSE8或以前版本的响应shell. 当我今天尝试时,do_something_intensi
当您管道两个进程并在管道的“输出”处终止该进程时,第一个进程用于接收“Broken Pipe”信号,该信号通常也会终止它.例如.赛跑
然后退出较少用于立即返回到SuSE8或以前版本的响应shell. 你们中的任何人都有这方面的暗示吗?如何恢复以前的行为?为什么它已被改变(或为什么它总是存在多个语义)? 编辑:进一步测试(使用strace)显示生成了“SIGPIPE”,但程序没有中断.一个简单的
将继续无止境
少被杀的时候.我可以肯定在我的程序中编写一个信号处理程序并确保它终止,但我更需要一些环境变量或shell选项来强制程序在SIGPIPE上终止 再次编辑:它似乎是一个特定于tcsh的问题(bash正确处理它)和终端依赖(Eterm 0.9.4) 最佳答案
好吧,如果在读取器消失后尝试写入管道,则会生成SIGPIPE信号.应用程序能够捕获此信号,但如果没有,则该进程被终止.
在调用进程尝试写入之前不会生成SIGPIPE,因此如果没有更多输出,则不会生成它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |