如何获取长时间运行的 Linux 进程的启动时间?

每当我们想要获取有关特定进程或不同进程的更新时,我们都会使用ps命令,它是“进程状态”的缩写,它告诉我们当前进程的状态及其特征等等。

当使用多个标志和命令时,我们可以增强ps命令以输出在特定 Linux 机器上运行的不同进程的启动时间。

以递增顺序打印长时间运行进程的时间的命令如下所示 -

对于 Ubuntu 和其他基于 Linux 的系统 -

ps -eo pid , lstart , cmd

对于 Mac 操作系统 -

ps -eo pid , lstart , command

在上面的命令中,我们试图利用 linux 提供的进程状态实用程序,然后打印进程 ID,以及 lstart,它将为我们提供开始的日期+时间,最后command(name)是进程的日期。

输出结果

immukul@192 linux-questions-code % ps -eo pid,lstart,command
PID    STARTED                  COMMAND
 1   Fri Jun 25 23:14:44 2021 /sbin/launchd
56   Fri Jun 25 23:15:00 2021 /usr/sbin/syslogd
57   Fri Jun 25 23:15:00 2021 /usr/libexec/UserEventAgent (System)

需要注意的是,上面的命令会按照时间递增的顺序打印输出,最近的进程会在输出的最后。为了按降序打印时间,我们需要使用 sort 命令实用程序以及上述命令。考虑下面显示的命令 -

对于 Ubuntu 和其他基于 Linux 的系统

命令

ps -eo pid , cmd , etime | sort -n -k2

对于 Mac 操作系统

ps -eo pid , command , etime | sort -n -k2
输出结果
immukul@192 linux-questions-code % ps -eo pid,command,etime|sort -n -k2
 1 /sbin/launchd    08-13:56:50
56 /usr/sbin/syslog 08-13:56:34
57 /usr/libexec/Use 08-13:56:34
60 /System/Library/ 08-13:56:34
61 /System/Library/ 08-13:56:34
62 /System/Library/ 08-13:56:34
65 /usr/sbin/system 08-13:56:34