如何在 Linux 上查看正在运行的进程
在此页
- 使用 ps 命令列出进程
- 使用 pgrep 查找进程
- 用top查看正在运行的进程
- 使用 htop 查看正在运行的进程
- 结论
在 Linux 系统上运行的一切,从用户应用程序到系统服务,都是它自己独立的进程。即使您的计算机正坐在一个空白的终端屏幕上,毫无疑问还有大量的进程在后台运行。我们可以使用多种 Linux 工具来识别系统上的所有进程,而这正是本指南中涵盖的内容。
知道如何检查正在运行的进程将使您能够验证是否有东西正在运行,必要时终止它,并监控它对系统资源(CPU 和 RAM)的影响。
使用 ps 命令列出进程
ps 命令可以通过 -e 选项列出 Linux 系统上运行的所有进程。
ps -e

系统在任何给定时间运行大量进程是正常的,因此通过将命令传递给 more 可以更轻松地筛选此列表。例如,一次查看 15 行:
ps -e | more -15
ps 的输出向我们展示了每个正在运行的进程、其各自的进程 ID(缩写为 PID)和 TTY(进程正在运行的终端接口)。 TTY 列中的问号表示该进程未附加到任何终端接口 - 它只是在后台运行。
您可能需要知道进程的 PID 才能终止它,或者需要知道 TTY 才能通过重新连接到正确的终端窗口来返回打开的进程。
ps 的另一个有用选项是 -aux 选项。
ps -aux
与前面的选项一样,这将列出系统上运行的每个进程。但是,它还列出了每个进程当前的 CPU 和 RAM 使用情况,以及生成每个进程的命令。

使用 pgrep 查找进程
pgrep commad 为我们组合了 ps 和 grep。我们可以指定要搜索的进程的名称(或名称的一部分),pgrep 将返回相应的进程 ID。
例如,要在您的系统上搜索任何与 SSH 相关的进程,您可以键入:
pgrep ssh

如上图所示,pgrep 发现了一个 PID 为 1143 的 SSH 进程。为了进一步验证,我们使用 ps 命令查看:
ps -e | grep 1143

使用top查看正在运行的进程
top 实用程序当然是一个命令行工具,但它提供所有当前正在运行的进程的交互式输出,显示您希望在图形界面中看到的信息。上手很简单,输入top即可:
top

top 的输出为我们提供了大量信息,包括我们系统的整体 CPU 和 RAM 使用情况。但是我们在这里是为了进程列表,你会在它的正下方找到它。
终端窗口根本不够大,无法让 top 列出每个正在运行的进程,因此 top 会显示尽可能多的进程,并根据系统资源使用情况对它们进行排序。换句话说,使用最多 CPU 和 RAM 的进程将列在顶部。要求较低的进程将显示在列表中较低的位置,可能会从终端窗口中截断。
使用键盘上的箭头键上下滚动进程列表。
关于每个正在运行的进程,列出了相当多的信息。以下是这些不同列的含义的简要说明:
- PID:每个任务的进程ID。
- PR:任务的调度优先级。
- NI:一项任务的不错的价值。负数表示更高的优先级。
- VIRT:正在使用的虚拟内存量。
- RES:正在使用的常驻内存量。
- SHR:正在使用的共享内存量。
- S:任务的状态(R=running,S=sleeping)。
- %CPU:任务当前使用的 CPU 百分比。
- %MEM:任务当前使用的 RAM 百分比。
- TIME+:任务的 CPU 时间。
- COMMAND:用于生成任务的命令。
如前所述,top 是交互式的,因此我们可以使用一些键盘快捷键来使用它做一些巧妙的事情。我们来看看下面的一些更方便的。
按 z 键为正在运行的进程设置颜色代码。这样可以更轻松地将正在运行的任务与休眠或僵尸进程区分开来。

按 c 键获取用于每个任务的完整命令。这将显示绝对路径以及使用的任何选项。

直接从顶部实用程序中按 k 键终止正在运行的进程。这样可以节省一些时间,而不必退出该实用程序并发出单独的 kill 命令。您只需要输入您希望结束的进程的 PID:

按 r 键可使用 renice 更改进程的优先级。输入您希望重新启动的进程的 PID:

有关更多选项,请按 h(帮助)键查看 top 可以执行的所有其他操作。
使用完 top 实用程序后,您可以退出该工具并按 q 返回终端。
使用 htop 查看正在运行的进程
htop 实用程序基于 top 构建,更加用户友好且看起来更有趣。唯一的缺点是它并非默认安装在所有 Linux 发行版上,因此您可能需要先安装它。它应该在您的操作系统存储库中,所以这里是如何使用您的包管理器安装它:
Debian 和 Ubuntu:
sudo apt-get install htop
CentOS 和 Fedora:
dnf install htop
红帽:
yum install htop
安装后,只需键入 htop 即可运行该实用程序。
htop

您可以使用鼠标与 htop 交互,各种键盘命令列在终端窗口的底部。它的功能与 top 基本相同,但界面更清晰,更易于理解。
结论
在本指南中,我们向您展示了几种不同的方法来查看 Linux 系统上正在运行的进程。您使用哪一种取决于手头的情况和您的个人喜好,但每种方法都有其自身的优势。
使用您在本指南中学到的知识,您可以识别系统上运行的所有进程、它们对系统资源的影响,并让您能够根据需要终止任务或重新确定任务的优先级。