什么是Linux进程(linux的进程管理)

什么是Linux进程(linux的进程管理)

浏览次数:
信息来源: 用户投稿
更新日期: 2025-11-23
文章简介

我们都遵循某些流程来实现我们的目标,类似的是,每个系统都有自己的进程来完成任务。在Linux系统中执行的每个程序或命令都被称为一个进程。在本教程中,让我们来探讨进程以及我们如何在Linux中管理

2025阿里云双十一服务器活动

我们都遵循某些流程来实现我们的目标,类似的是,每个系统都有自己的进程来完成任务

在Linux系统中执行的每个程序或命令都被称为一个进程。

在本教程中,让我们来探讨进程以及我们如何在Linux中管理它们。

理论上,一个进程被称为一个正在执行的程序,就是一个系统目前正在进行的任务。

你在系统上的每一个动作都会导致一个新的进程。例如,打开一个浏览器就会启动一个进程。

简单地说,一个进程是一个程序的实例。用户的操作被转化为一个命令,在执行该命令时将会创建一个新的进程。

进程按照父-子层次结构工作。正如层次结构的名称所表示的那样,由命令/程序启动的进程被称为父进程,父进程产生的进程被称为子进程。

在Linux发行版中,进程被分为两种类型:

  • 前台进程
  • 后台进程
  • 一个需要用户使用终端命令或程序来启动的进程被称为前台进程。这意味着前台进程需要一个来自用户的输入触发。所以每个前台进程都是手动触发的。

    每当一个进程在前台运行时,其他进程应该等待,直到当前进程完成。

    证明这一点的最好例子是通过命令。?命令不允许用户与终端互动,直到达到给定的时间。

    终端命令在前台运行并暂停用户输入

    我们应该等待10秒钟,以访问终端运行另一个命令。

    一个独立于用户输入运行的进程被称为后台进程。与前台进程不同,我们可以在一个后台进程中同时运行多个进程。

    要在后台运行一个进程,在你用来启动该进程的命令的结尾处放一个安培号(&)。

    让我们在一个后台进程中执行命令。它将在后台运行,并将终端还给我们以运行其他命令。

    现在我们可以看到,上述命令在后台运行。它创建了一个19003的进程。所以我们可以同时运行另一条命令(?命令)。

    如何将一个前台进程改为后台进程

    如果我们在前台启动一个进程并想把它放到后台,我们可以用命令来实现。让我们看看如何将前台进程改为后台。

    如果一个进程正在运行,按键。这个命令将暂停当前进程。

    然后运行命令。它接受一个进程ID作为参数,并将该进程放入后台。如果参数为空,它将把当前暂停的进程放入后台。

    将上一个进程移到后台的命令

    我们可以看到暂停的命令()在后台恢复了。

    在我们介绍如何做到这一点之前,你应该知道为什么你可能需要知道一个进程的列表。这里有几个原因:

  • 要知道哪个进程消耗的时间更多
  • 要知道哪个进程占用更多的内存和CPU
  • 要知道一个正在运行的进程所触发的命令
  • 要查看当前正在运行的进程,我们可以使用?(ProcessStatus进程状态)命令:

    列出正在运行的进程的终端命令

    要列出每个登录用户的所有进程的摘要,我们可以使用命令。这个命令是Linux中?、?和命令的结合。

    列出所有登录用户的进程的终端命令

    当一个程序/命令运行时,它启动了一个被称为“父进程”的主进程。父进程可能依赖于其他一些命令/程序,这将创建一个子进程。

    在上面的截图中,Firefox是父进程,其他进程是其子进程。

    让我们来探讨一下如何以树状结构列出进程。

    什么是Linux进程,linux的进程管理

    将进程以树状结构列出的终端命令

    我们可以看到,正在运行的进程是以树状形式显示的。这对于可视化进程是很有用的。

    在命令中添加标志将显示每个分支和其进程ID。

    以树状结构显示一个父进程的子进程的终端命令

    要列出一个特定进程的子进程,请将进程ID作为参数传给命令。

    列出进程id3149的进程的终端命令

    在上文中,我提到命令列出了所有用户的进程。在命令中传递用户名,只列出该用户运行的进程。

    上面的截图显示了由用户运行的进程。

    很多开发者可能都遇到过以下情况:

    在进行web开发项目时,我们使用Chrome、Firefox等不同的浏览器来验证输出。

    有些开发者会不断地打开标签,而从不关闭已打开的标签。由于负载过重(如果打开了150多个标签),浏览器有时会没有反应?导致系统挂起。最糟糕的是,我们将无法关闭浏览器?。

    与Windows不同,我们在Linux中没有任务管理器来杀死浏览器。

    这个问题在Linux中也可以轻松解决。让我们看看一个Linux专家是如何处理这种情况的。

    我们知道,每个程序(包括浏览器)都是作为一个进程运行的。所以,你只需要找到进程的ID,然后关掉它。

    让我们看看如何找到你需要的一个命令/程序的进程ID。

    在我的系统中,Chrome正在运行,现在我们可以通过运行以下命令得到Chrome的PID:

    在Linux中,有一个叫作的命令,通过传递PID(进程ID)或进程名称来杀死任何进程。

    让我们存储Chrome的PID,并使用命令杀死它:

    上述命令将杀死Chromeweb浏览器。

    我们可以使用命令查看所有的Linux进程。它为所有用户显示每个进程的实时更新。

    让我们了解一下标题,以理解下方的数据。

  • PID代表一个唯一的进程ID
  • USER代表任务所有者的用户名
  • PR代表该进程的优先级,数字越小,优先级越高
  • NI代表任务的优先级,一个负的Nice值意味着更高的优先级,一个正的Nice值意味着更低的优先级
  • VIRT代表任务使用的总虚拟内存
  • RES代表一个进程的RAM使用量,以千字节为单位
  • SHR代表一个进程使用的共享内存大小(Kb)
  • S代表进程的状态:–?*D*不间断的睡眠–?*R*运行–?*S*睡眠–?*T*追踪(已停止)–?*Z*僵尸
  • CPU代表CPU使用率
  • MEM代表任务的内存使用量
  • TIME代表CPU时间
  • COMMAND代表用于启动进程的命令
  • 要显示特定的用户进程,我们应该使用标志?:

    列出特定用户进程的终端命令语法

    要查看由用户运行的进程,请运行以下命令:

    列出由用户启动的进程的终端命令

    你可能对命令行的输出感到困惑?。这对实时调试进程来说有点困难。

    这里有一个方便的GUI工具来处理Linux中的进程。但我们必须手动安装这个工具。这将更像Windows中的任务管理器。

    安装系统监控应用程序的终端命令

    安装后,只需在终端输入软件的名称:

    在GUI中打开进程列表的命令

    这将在一个新的窗口中打开所有的进程,并有一个不错的GUI:

    当我们右键点击任何进程时,它将显示诸如杀死、停止、结束等操作。

  • CPU历史
  • 内存和交换历史
  • 网络历史
  • 这些图表对确定你的系统中的负载很有用。

    在这篇文章中,你已经了解了Linux中进程的基本知识。我希望你现在能更好地理解它们是如何工作的。我建议你在你的系统中尝试这些命令。

    标签:
    服务器linuxwindows
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!