相关疑难解决方法(0)

bash:强制exec'd进程有无缓冲的stdout

我有一个像这样的脚本:

#!/bin/bash
exec /usr/bin/some_binary > /tmp/my.log 2>&1
Run Code Online (Sandbox Code Playgroud)

问题是它将some_binary所有日志记录发送到stdout,并且缓冲使得它只能看到几行的块输出.当一些事情陷入困境时,这很烦人,我需要看看最后一行说的是什么.

有没有办法让stdout在我执行会影响some_binary的exec之前没有缓冲,所以它有更多有用的日志记录?

(包装器脚本只在exec之前设置一些环境变量,因此perl或python中的解决方案也是可行的.)

bash logging exec unbuffered-output

20
推荐指数
3
解决办法
2万
查看次数

标签 统计

bash ×1

exec ×1

logging ×1

unbuffered-output ×1