我在ps
练习中使用命令来识别运行时间超过给定阈值的进程。
我正在使用以下模板来获取已知流程命令的经过时间:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
我注意到,对于运行时间较短的进程,etime(经过的时间)值采用格式minutes:seconds
,因此,我可以轻松地确定进程运行了多长时间。
对于运行时间非常长的进程(几天之久),我不了解其格式。
我有一个MySQL服务器进程,htop
显示已运行126个小时。
执行ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
给出的值为9-03:35:32
。
我最好的猜测是,这意味着9个小时,3小时35分钟32秒。我不知道9的单位是多少。
该过程已运行126个小时,约5.25天。这表明以上输出中的9不代表天。他们也不可以是半天,因为(9 * 12)小时+ 3小时+ 35分钟+ 32秒少于5天。
如何解释长时间运行的进程所经过的时间值?以上输出中的9伴随什么单位?
要仔细检查,请尝试
—
罗斯兰
etimes
代替etime
并比较结果。
ps
会根据您通过的选项显示一个或另一个。