后台进程日志显示消息时间戳中的大差距

时间:2014-05-28 22:53:54

标签: linux bash shell nohup

我在一个周末的背景下在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

1 个答案:

答案 0 :(得分:0)

确定。

pid是一个变量,它是您要监视的进程的pid-- 试试这个开始(由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 

将显示内存页中有多少字节。