我使用守护进程工具来监视进程及其输出日志。我使用多测井将日志写入磁盘。
日志的运行脚本是:
#!/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
cd /usr/local/script_dir
exec multilog t s16777215 n50 '!tai64nlocal' '!/bin/gzip' /var/log/script_log正在监视的进程也会将输出写入stderr。因此,在流程的运行脚本中,有以下行将stderr重定向到stdout:
exec 2>&1
exec ./my_process然而,在跟踪日志文件时,我看到数百行输出以突发形式出现(被监视的进程每隔几秒钟写入输出),日志行上的时间戳在亚微秒级别上有所不同。我从过程的本质上知道,日志线之间的时间差并不是那么小。显然,multilog是在缓冲输出,然后在准备写入文件时添加时间戳。我希望时间戳能更接近地反映出这条线的输出时间。怎么解决这个问题呢?
发布于 2013-03-23 00:09:42
正在监视的脚本是Python脚本。为了使所有标准流不被缓冲,我发现可以将-u选项传递给解释器。这解决了我案子中的问题。
https://unix.stackexchange.com/questions/68059
复制相似问题