我目前将此日志/运行脚本作为 runit 服务的一部分:
#!/bin/sh
set -e
exec svlogd -tt ./main
Run Code Online (Sandbox Code Playgroud)
如果我“ tail -f log/main/current
”,我看不到“实时”写的服务输出。它似乎只以 4K 的增量转储标准输出。因此,如果不小心使用该服务,我将看不到最新的日志数据,除非我实际上对该服务执行了“sv restart”,在这种情况下,所有数据都会在服务重新启动之前写入日志。
我已经尝试过“-l”和“-b”参数,但这些没有任何影响(我什至不确定它在这一点上是否重要)。
不幸的是,看起来故障在于守护进程,它在写入日志数据后没有刷新它的标准输出。
svlogd 仅进行行缓冲,因此一旦完整的行到达标准输入,它就会将其输出到日志文件。
归档时间: |
|
查看次数: |
1841 次 |
最近记录: |