Linux:ps 命令的输出随机与预期不同,您能找到原因吗?

Linux:ps 命令的输出随机与预期不同,您能找到原因吗?

我编写了一个 Nagios 检查程序,用于计算正在运行的 pgpool 进程数以及每个进程的运行时间。我在 Linux CentOS 6.4 上运行

为了获取进程运行的时间,我使用了下一个命令:

ps -p PID -o etime=

例子:

[root@pgpool ~]# ps -p 28737 -o etime=
   08:35:48
[root@pgpool ~]#

这是正常输出,但有时我会得到以下输出,并且它会破坏脚本: 7-17:15:52 示例:

[root@pgpool ~]# for prc in $(ps -ef | grep pgpool | grep -v wait | grep -v PCP | awk '{print $2}'); do ps -p $prc -o etime= ; done
      40:55
   22:08:43
      23:55
   15:12:36
      20:35
 7-17:15:52
   09:34:35
29-00:56:18
[root@pgpool ~]#

我的问题是:

  • 这是什么意思?这个过程运行了 7 到 17 个小时?
  • 为什么输出布局有时会有所不同?

答案1

man ps, 部分etime

etime ELAPSED 自进程启动以来经过的时间,格式为 [[dd-]hh:]mm:ss。

因此您的流程运行的时间超过一天。

相关内容