我在一个周末的背景下在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
答案 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
将显示内存页中有多少字节。