linux查看进程运行时长

嘿,我必须告诉你,会员费是用真金白银支付的。

前年,我在上海的时候,服务器出现了问题,CPU 猛增。
我只是想看看哪个过程持续时间最长。
那一刻我脑子过热,直接ps aux | grepjava。
结果出现了很多Java进程,光是看着就头晕了。
后来朋友教了我一句话,我就记住了。

ps -eo pid,etime,cmd | ps -eo pid,etime,cmd | ps -eo pid,etime,cmd | grep java
看,很简单。
etime表示实际持续时间,包括暂停时间。
例如,当我看到03 -01 :2 0:1 0时,我已经跑步了三天,一个多小时。
这是最直观的,直接给你答案。

一次在杭州,我正在编写一个自动化脚本,需要统计一系列流程的历史执行时间。
光用PS是不行的,还得计算时间差。
我使用日期和估计创建了一个小脚本。
预估值是多少?这是开始时间,例如下午 2 .3 0。
您必须从当前时间中减去它并手动计算。
当时还挺有问题的,后来发现还有很多其他使用etime的场景。

以后你也可以使用top。
在执行过程中按 c 可查看完整的命令。
那TIME+是CPU使用的时间,而不是实际的执行时间。
上次在成都调试一个脚本,脚本的CPU跑得很快,但实际上并没有做多少事情。
看着高高的TIME+,以为已经工作很久了,结果发现并没有。
所以etime比较靠谱。

还有htop,更有趣。
只需查看即可判断哪个进程较旧。
但需要安装,有些旧服务器无法安装。

哦,对了,你还可以使用systemctl来进行系统服务。
例如,systemctl status sshd | grep Active,包含“since”,即它已经运行了多长时间。
我去年在北京换了服务器。
为了查看 nginx 服务运行了多长时间,我使用了这个。
简单明了。

总而言之,最常用的命令是 ps -eo pid,etime,cmd | grep [进程名称]。
直接,不需要思考。
如果比较复杂,就写个脚本或者用top或者htop来观看玩。
systemctl 依赖于系统服务。
时间是当前时间,请记住。

好了,废话够多了,有用就用,少走弯路。

如何查看Linux系统的启动时间和运行时间

直接使用 who -b 查找启动日期,使用 top 或 uptime 查看运行时间,使用 Lastreboot 查看重启历史记录,使用 /proc/uptime 计算秒数。

自己掂量一下。

Linux 上查看系统/服务器运行时间的 11 种方法

上周 我的那个朋友 使用 uptime 检查服务器运行了多长时间。
很简单。
只需直接输入正常运行时间即可。
它将显示系统已经运行了多长时间。
还有加载条件。
2 02 3 年 我尝试了 who 命令。
您还可以查看谁在线。
但正常运行时间更容易。
特别是当你想看看跑了多长时间时。
由你决定。

我只是想到了别的事 如果服务器关闭。
使用last 查看它持续了多长时间。
它将读取 wtmp 文件。
我不确定这部分 具体怎么看呢。
但通常重启后就可以检查到。
不要紧。