我问了这个问题。SIGPIPE生成信号以停止执行应答中的命令。
但是我如何捕获这个信号并优雅地终止命令呢?该命令退出并显示错误,指出它是一个损坏的管道。
[ERROR] [Errno 32] 管道破裂
是否显示错误信息
我循环运行我的命令。我将循环直接写入 bash 命令行:
$ while true; do mycommand; done
Run Code Online (Sandbox Code Playgroud)
mycommand 是一个执行大量 io 并等待事件的命令,因此它不会消耗太多处理器时间。
我怎样才能中断循环?当我按下ctrl-c或ctrl-\然后 mycommand 终止但它立即再次启动。当我登录到另一个终端并终止命令时,情况是一样的。
是否可以在不终止终端会话的情况下中断循环?