如何找到一个进程在UNIX中运行了多长时间


大家好!今天,我将分享一个有用的技巧,来找出一个特定的进程已经运行了多长时间。当您对问题进行故障排除并想知道您的流程或服务是否每天或每周都正常重启时,这非常有用。

UNIX或Linux几乎对所有东西都有命令,如果没有命令,你可以检查/etc目录中的一些重要文件,找出一些有用的信息。

所以我想分享这个小技巧,在基于UNIX的系统中找到进程的运行时间,比如Linux和Solaris。

查找进程运行时的Linux命令

正如我说过的,没有一个命令可以告诉我们一个进程运行了多长时间。我们需要结合多条命令和我们对基于UNIX的系统的了解来找到一个进程的正常运行时间。

步骤1:使用ps命令查找进程id

$ ps -ef | grep java

user 22031 22029   0   Jan 29 ? 24:53 java -Xms512M -Xmx512 Server


这里,22031是进程id。顺便说一下,如果您的服务器上运行不止一个Java进程,那么您可能需要使用一个更具体的grep命令来查找PID。

第二步:找到一个过程的运行时间或开始时间

一旦你有了进程标识符,你就可以在进程目录中查找该进程,并检查创建日期,也就是进程开始的时间。

通过检查时间戳,您可以很容易地找到您的进程已经运行了多长时间。为了检查procs目录中任何进程id的时间戳,您可以使用以下带有选项-ld的UNIX命令,如下所示:

$ ls -ld /proc/22031

dr-x--x--x   5 user     group           832 Jan 22 13:09 /proc/22031


这里,进程号为22031的进程从1月22日13:09开始运行。

如果您幸运的话,有时ps命令还会显示特定程序的启动时间,如下图所示: