一个周末,我在后台 nohup 下开始了一项长时间运行的工作。当查看完成后的输出时,我注意到一些日志消息的时间戳之间存在很大的差距。有的间隙长达10小时。我当时无法了解我的工作发生了什么。
我在工作中的标准 Red hat Linux 服务器计算机上运行了它。
此行为是由 nohup 命令引起的吗?如果不是,可能的原因是什么?
其中一个长时间运行的作业如下所示 -
#!/bin/bash
while true
do
echo "`date` `top -n 1 -b | grep progname`"
done
这是日志中的一个这样的间隙 -
Mon May 26 04:29:42 PDT 2014 27685 user 18 0 2883m 2.8g 1732 S 0.0 3.9 29:05.54 progname
Tue May 27 03:20:35 PDT 2014 27685 user 18 0 3371m 3.3g 1732 S 0.0 4.6 34:23.21 progname
最佳答案
好的。
pid是一个变量,它是你想要监控的进程的pid-- 首先尝试一下这个(由 S Chazelas 提供):
export pid=$(ps -ef | grep progname | awk '{$print $2}')
while rss=$(ps -o rss= -p "${pid}")
do
printf '%d %s\n' "$rss" "$(date)"
sleep 60;
done > t.lis
#
echo "Done $(date)" >> t.lis
rss 是驻留集大小(分配给进程的内存),以页为单位。
getconf PAGESIZE
将显示一页内存中有多少字节。
关于linux - 后台进程日志显示消息时间戳存在很大差距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23923169/