从用户应用程序到系统服务,在Linux系统上运行的所有内容都是其自己的独立过程。即使您的计算机坐在空白的终端屏幕上,无疑也会在后台运行许多进程。我们可以使用几种Linux工具来识别系统上的所有进程,这就是本指南中要介绍的内容。
知道如何检查正在运行的进程将使您能够验证某项是否正在运行,必要时将其终止并监视其对系统资源(CPU和RAM)的影响。
使用ps命令列出进程
ps命令可以使用-e选项列出在Linux系统上运行的所有进程。
ps -e
系统在任何给定时间都运行大量进程是正常的,因此通过将命令传递给更多命令更容易在此列表中进行筛选。例如,一次查看15行:
ps -e | more -15
ps的输出向我们显示了每个正在运行的进程,其各自的进程ID(缩写为PID)和TTY(该进程在其上运行的终端接口)。TTY列中的问号表示该过程未附加到任何终端接口-它仅在后台运行。
您可能需要知道进程的PID才能杀死它,或知道TTY,以便可以通过重新连接到正确的终端窗口来返回打开的进程。
ps的另一个有用选项是-aux选项。
ps -aux
像上一个选项一样,它将列出系统上运行的每个进程。但是,它还会列出每个进程的当前CPU和RAM使用情况,以及产生每个进程的命令。
用pgrep查找进程
pgrep对我们来说是将ps和grep结合在一起的一种令人迷惑的方式。我们可以指定要搜索的进程的名称(或名称的一部分),然后pgrep将返回相应的进程ID。
例如,要搜索系统上与SSH相关的任何进程,请输入:
pgrep ssh
如上面的屏幕截图所示,pgrep找到了一个SSH进程,其PID为1143。为进一步验证,让我们使用ps命令进行检查:
ps -e | grep 1143
使用顶部查看正在运行的进程
top实用程序当然是一个命令行工具,但是它提供了所有当前正在运行的进程的交互式输出,显示的信息就像您希望在图形界面中看到的那样。入门很容易,只需键入top:
top
顶部的输出为我们提供了很多信息,包括系统上的总体CPU和RAM使用情况。但是我们在这里是进程列表,您可以在下面直接找到。
终端窗口根本不够大,无法允许top列出每个正在运行的进程,因此top会尽可能多地显示并根据系统资源使用情况对其进行排序 。换句话说,使用最多CPU和RAM的进程将列在顶部。要求较低的过程将在列表中显示的较低,可能会从终端窗口中切断。
使用 键盘上的箭头键可在进程列表中上下滚动。
关于每个正在运行的进程,列出了很多信息。以下是这些不同列的含义的简要说明:
- PID:每个任务的进程ID。
- PR:任务的调度优先级。
- NI:任务的价值所在。负数表示较高的优先级。
- VIRT:使用的虚拟内存量。
- RES:正在使用的驻留内存量。
- SHR:正在使用的共享内存量。
- S:任务的状态(R =正在运行,S =正在睡眠)。
- %CPU:任务正在使用的当前CPU百分比。
- %MEM :任务正在使用的当前RAM百分比。
- TIME +:任务的CPU时间。
- COMMAND:用于产生任务的命令。
如前所述,top是交互式的,因此我们可以使用一些键盘快捷键来完成一些巧妙的事情。我们将在下面介绍一些更方便的方法。
按下 z键以对运行过程进行颜色编码。这使得区分正在运行的任务与睡眠或僵尸进程变得更加容易。
按下 c键以获取用于每个任务的完整命令。这将显示绝对路径以及所使用的任何选项。
直接从顶部实用程序按 k键终止正在运行的进程。这省去了退出实用程序并发出单独的kill命令的时间。您只需要输入要结束的进程的PID:
按 r键更改renice进程的优先级。输入您希望取消的进程的PID:
有关更多选项,请按 h (帮助)键以查看top可以执行的所有其他操作。
使用top实用程序完成后,可以按q退出工具并返回到终端 。
使用htop查看正在运行的进程
htop实用程序是基于顶级构建的,它看起来更加人性化和令人愉悦。唯一的缺点是默认情况下并未将其安装在所有Linux发行版上,因此您可能需要先安装它。它应该在您的操作系统的存储库中,因此这是使用包管理器进行安装的方法:
Debian和Ubuntu:
sudo apt-get install htop
CentOS和Fedora:
dnf install htop
Redhat:
yum install htop
安装后,只需键入htop即可运行该实用程序。
htop
您可以使用鼠标与htop进行交互,并且各种键盘命令在终端窗口的底部列出。它的功能与top大致相同,但界面更简洁,更易于理解。
结论
在本指南中,我们向您展示了几种查看Linux系统上正在运行的进程的方法。您使用哪种方法将取决于当前的情况和您的个人喜好,但是每种方法都有其自身的优势。
使用从本指南中学到的知识,您可以识别系统上正在运行的所有进程,它们对系统资源的影响,并可以根据需要终止或重新确定任务的优先级。
原文:https://www.howtoforge.com/how-to-view-running-processes-on-linux/