如果你想知道一个进程在Linux操作系统中运行多长时间,请采用本文介绍的四种方法:使用ps命令etime/etimes选项、使用进程名称及proc文件系统(procfs)。可以在ps命令的帮助下完成,它显示了给定的过程正常运行时间,形式为[[DD-]hh:]mm:ss,以秒为单位,以及确切的开始日期和时间。ps命令中有多个选项可用于检查,每个选项都有不同的输出,可用于不同的目的。
关于top命令的说明 # top -b -s -n 1 | grep httpd
请注意:你可能认为在top命令输出中可以找到相同的详细信息,那就错了,它显示了任务自启动以来所使用的总CPU时间,但它不包括经过的时间,所以,不要混淆这个。 参考:top命令_Linux top命令使用详解:显示或管理执行中的程序。
ps命令相关说明 ps代表进程状态,它显示有关系统上活动/正在运行的进程的信息。 它提供了当前进程的快照以及用户名、用户ID、CPU使用率、内存使用情况、进程开始日期和时间命令名等详细信息。 1、etime:自进程开始以来经过的时间,以[[DD-]hh:]mm:ss的形式出现。 2、etimes:自进程开始以来经过的时间,以秒为单位。 为此,你需要找出进程的PID,我们可以使用pidof命令轻松识别它: # pidof httpd 30446 30445 30444 30443 30442 16337 参考:pidof命令_Linux pidof命令使用详解:查找指定名称进程的进程号ID号。
方法一:使用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
方法三:使用etimes选项 以下命令将显示经过的时间(以秒为单位): # ps -p 16337 -o etimes ELAPSED 1170810 它以秒为单位显示输出,你需要根据你的要求进行转换:
如果你想知道该进程运行了多少小时,请使用Linux命令行计算器,参考Linux命令行中使用计算器的方法:用bc,calc,expr,gcalccmd,qalc命令: # bc -l 1170810/3600 325.22500000000000000000 如果你想知道该进程运行了多少天,请使用以下格式: # bc -l 1170810/86400 13.55104166666666666666 上述命令不会显示进程的确切开始日期,如果你想了解这些信息,则可以使用以下命令,根据以下输出,httpd进程自8月05日以来一直在运行: # ps -ef | grep httpd
方法四:使用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”文件,但包含运行时系统信息(例如系统内存、安装的设备、硬件配置等)。
相关主题 |