我写了一个 Nagios 检查,它计算有多少 pgpool 进程正在运行以及每个进程运行了多长时间。我在 Linux CentOS 6.4 上运行
为了获得进程运行的时间,我使用了下一个命令:
ps -p PID -o etime=
Run Code Online (Sandbox Code Playgroud)
例子:
[root@pgpool ~]# ps -p 28737 -o etime=
08:35:48
[root@pgpool ~]#
Run Code Online (Sandbox Code Playgroud)
这是正常输出,但有时我会得到以下输出并破坏脚本:
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 ~]#
Run Code Online (Sandbox Code Playgroud)
所以我的问题是: