如果你想知道一个进程在Linux操作系统中运行多长时间,请采用本文介绍的四种方法:使用ps命令etime/etimes选项、使用进程名称及proc文件系统(procfs)。可以在ps命令的帮助下完成,它显示了给定的过程正常运行时间,形式为[[DD-]hh:]mm:ss,以秒为单位,以及确切的开始日期和时间。ps命令中有多个选项可用于检查,每个选项都有不同的输出,可用于不同的目的。

关于top命令的说明

# top -b -s -n 1 | grep httpd

5a0b115fb5a7c2e664c4d3a6685700e2.png

请注意:你可能认为在top命令输出中可以找到相同的详细信息,那就错了,它显示了任务自启动以来所使用的总CPU时间,但它不包括经过的时间,所以,不要混淆这个。

ps命令相关说明

ps代表进程状态,它显示有关系统上活动/正在运行的进程的信息。

它提供了当前进程的快照以及用户名、用户ID、CPU使用率、内存使用情况、进程开始日期和时间命令名等详细信息。

1、etime:自进程开始以来经过的时间,以[[DD-]hh:]mm:ss的形式出现。

2、etimes:自进程开始以来经过的时间,以秒为单位。

为此,你需要找出进程的PID,我们可以使用pidof命令轻松识别它:

# pidof httpd

30446 30445 30444 30443 30442 16337

方法一:使用etime选项

使用带有etime选项的ps命令可获取详细的已用时间:

# ps -p 16337 -o etime

ELAPSED

13-13:13:26

根据上面的输出,httpd进程已经在我们的服务器上运行了13天13小时13分钟和26秒。

方法二:使用进程名称,而不是进程ID(PID)

如果要使用进程名称而不是PID,请使用以下名称:

# ps -eo pid,etime,cmd | grep httpd | grep -v grep

f29f94fe8ba9b5d9f04bc7226c45d101.png

方法三:使用etimes选项

以下命令将显示经过的时间(以秒为单位):

# ps -p 16337 -o etimes

ELAPSED

1170810

它以秒为单位显示输出,你需要根据你的要求进行转换:

bb621b8b077d66958ce5bdf9e47d40c7.png

# bc -l

1170810/3600

325.22500000000000000000

如果你想知道该进程运行了多少天,请使用以下格式:

# bc -l

1170810/86400

13.55104166666666666666

上述命令不会显示进程的确切开始日期,如果你想了解这些信息,则可以使用以下命令,根据以下输出,httpd进程自8月05日以来一直在运行:

# ps -ef | grep httpd

872fc2227da32550d0df7267d592e23f.png

方法四:使用proc文件系统(procfs)

上面的命令不会显示进程的确切开始时间,并使用以下格式进行检查,根据以下输出,httpd进程自8月05日17:20开始运行:

# ls -ld /proc/16337

dr-xr-xr-x. 9 root root 0 Aug  5 17:20 /proc/16337/

proc文件系统(procfs)是类Unix操作系统中的特殊文件系统,它提供有关进程和其他系统信息的信息。它有时被称为进程信息伪文件系统,它不包含“real”文件,但包含运行时系统信息(例如系统内存、安装的设备、硬件配置等)。

相关主题

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐