我正在使用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 …