一个Linux进程已经运行了多长时间?
评论 0
浏览 0
2019-08-15
1.概述
Linux自带了一些监控工具,可以帮助我们深入了解操作系统本身。来自Procps软件包的ps utility就是这些工具之一,它可以报告关于操作系统中当前进程的一些统计数据。
在本教程中,我们将看到如何使用ps 工具来查找某个特定进程的正常运行时间。
2.进程的运行时间
为了查看一个特定的Linux(甚至Mac)进程已经运行了多长时间,假设我们已经知道了进程标识,我们可以在Bash shell中输入以下命令。
>> ps -p <process_id> -o etime
让我们来分析一下这个命令。
- ps 帮助我们看到操作系统中当前进程的快照。ps 代表“进程状态”。
- 使用-p <process_id> 选项,我们可以指定进程ID。例如,-p20或-p 20 代表一个进程,进程ID为20。
- -o <format>让我们为输出指定一个自定义格式。也就是说,<format>是一个空白分隔或逗号分隔的列表形式的参数,它提供了一种指定单个输出列的方法。这里我们只是要了解进程中的耗时,所以我们用etime 作为单个输出列。顺便说一下,etime 代表“Elapsed Time”。
例如,如果我们对一个进程ID为1的程序运行上述命令。
>> ps -p 1 -o etime
我们会得到这个过程的耗时。
ELAPSED
03:24:30
这个特定的进程已经运行了3小时24分30秒。为了看到以秒为单位的运行时间,让我们使用etimes而不是time。
>> ps -p 1 -o etimes
ELAPSED
12270
请注意,我们不能在Mac上使用etimes 选项。
3.计时的输出格式
默认情况下,etime 代表自进程开始以来的时间,格式为[[DD-]hh:]mm:ss。例如,对于一个已经运行了20天的进程,经过的时间输出将是这样的。
ELAPSED
20-11:59:45
DD 和hh部分是可选的,因此当运行时间少于一天或少于一小时时,它们不会出现在输出中:
ELAPSED
21:51
这个过程已经运行了21分51秒。
4.自定义列标题
正如我们在前面的例子中所看到的,-o etime 选项在名为ELAPSED的列标题下打印已过时间。我们可以用-o etime=<header_name> 语法来重命名这个标题。
>> ps -p 1 -o etime=Uptime
Uptime
03:24:30
此外,我们甚至可以完全删除标题。
>> ps -p 1 -o etime=
03:24:30
对时:来说也是如此。
>> ps -p 1 -o etimes=
12270
这在我们要编写脚本时派上用场,而我们只关心数字输出。
5.总结
在本教程中,我们使用ps命令行工具来找出一个特定进程正在运行的时间。
我们还关注并学习了如何定制由ps生成的输出。
0 个评论