如何在Linux中终止进程
我们都有过这样的经历,我们的电脑运行异常缓慢,甚至在执行基本任务时都出现卡顿。在Windows中,您只有Windows任务管理器来检查和终止不那么重要但消耗大量内存的进程。然而,在Linux中,您拥有一整套命令和图形用户界面工具来管理这些任务。在本文中,我们将展示一些简单的命令行(CLI)方法以及如何在Linux中终止进程的图形用户界面方法。
在Linux中终止进程(2023)
但是,在我们深入研究Linux中的进程管理之前,让我们先了解一下什么是进程,以及什么是Linux系统中的进程ID。
Linux中的进程是什么
在Linux中,当前运行的每个程序实例称为“进程”,而每个可执行文件称为程序。当执行任何程序时,都会创建一个进程,并为每个进程分配一个称为“进程ID”的唯一5位识别号。当一个进程已完成执行或被强制终止时,其进程ID将被分配给下一个进程。
在Linux下通过命令行杀死进程
尽管与使用图形用户界面工具执行基本任务相比,使用终端有时看起来很吓人,但一旦您掌握了命令及其各种选项,管理各种进程就变得容易得多。
终止信号
当您尝试从Linux中的图形用户界面或CLI终止一个进程时,内核会向该进程发送一个终止信号。根据接收到的信号,该过程相应地采取行动。这些信号中的每一个都被分配了一个特定的数字,以便程序快速理解。终止信号有多种类型,但我们在这里只解释了基本的几种:
讯号 | 数值 | 描述 |
---|---|---|
标牌 | 1 | 它代表“信号挂断” 它是在终端关闭时发送的。 |
登录 | 2. | 它的意思是‘信号中断’ 它是在用户终止进程时发送的。 |
签名 | 9. | 它的意思是“信号杀死” 当您需要立即退出进程时,会发送该消息 |
标志 | 15个 | 它的意思是“信号终端” 当您需要终止进程并释放所消耗的资源时,会发送该消息 |
标牌 | 19-用于ARM,x86 17-适用于Alpha 23-用于MIPS 24-用于PA-RISC |
它的意思是“信号停止” 当您需要暂停进程并在稍后恢复该进程时,会发送该消息 |
标识进程ID
在终止进程之前,您需要了解进程的一些详细信息,如进程ID、运行时间等。PS
命令:
PS
使用ps命令时,您需要通过滚动并记下其名称来搜索该进程,这可能会很麻烦。相反,您甚至可以使用GREP
命令与PS
命令在管道中,如下图所示:
PS|GREP
为了更简单,有一个单独的命令,它只显示您需要知道的任何正在运行的进程的进程ID。使用的语法皮多夫
命令为:
皮多夫
使用KILL命令终止进程
一旦您记下了要终止的进程的进程ID,用于终止Linux系统上的程序的最常见命令是KILL命令。使用KILL命令的语法为:
杀掉
这个
参数是可选的,默认情况下KILL命令发送SIGTERM(15)信号。您可以通过其数值或上表中的实际信号名称发送任何其他信号。
终止进程使用pkill命令
如果您觉得搜索进程id不方便,可以使用pkill命令。它查找与模式匹配的进程,然后终止该进程。使用pkill命令的语法为:
杀手级
与pkill命令配对的一些常见选项包括:
选择权 | 描述 |
---|---|
-n |
仅选择与进程ID匹配的最新进程 |
-U |
选择特定用户拥有的进程 |
-x |
选择与模式完全匹配的进程 |
当多个用户在同一系统中处理同一程序的不同实例,并且其中一个实例开始出现一些意外行为时,这一点尤为重要。例如,在下面的截图中,我们正在使用Linux中的pkill命令杀死用户‘intel’拥有的‘gedit’实例:
Pkill-u英特尔Gedit
使用KILLALL命令终止进程
这个基拉尔
命令的工作方式与杀掉
命令,但它会终止与进程名匹配的所有进程,而不管用户是谁。默认情况下,它会将信号信号未另有说明的。需要注意的一件有趣的事情是基拉尔
命令永远不会终止自身,但可以终止基拉尔
指挥部。使用的语法基拉尔
命令为:
基拉尔
与KILLALL命令配对的一些选项包括:
选择权 | 描述 |
---|---|
-R |
将PROCESS_NAME解释为正则表达式模式,然后终止匹配该模式的进程 |
-U |
终止由指定所有者拥有的指定进程。 |
-o |
终止比特定时间更早(在此之前开始)的指定进程。 |
-y |
在特定时间之前(在指定时间之后开始)终止指定进程。 |
KILLALL命令可用于终止一系列相同的进程,甚至终止特定所有者拥有的所有进程。在我们的示例中,我们使用Linux中的KILLALL命令终止了“睡眠500秒”的所有进程:
KILLALL-V睡眠
使用TOP/HTOP命令终止Linux进程
当您不知道哪些进程正在消耗最大资源时,这种终止进程的方法很有用。在这两个命令中,您可以导航所有正在运行的进程,甚至是僵尸进程,并可以快速结束它们。要使用top命令监视您的资源,请使用终端中的语法:
塔顶
了解输出:
TOP命令的主要输出分为多个列,这些列包括:
- PID-显示正在运行的进程的进程ID
- 用户-显示进程的所有者
- 印刷机-显示操作系统分配的进程的优先级值
- 尼-显示友好值,类似于分配用户间隔值以手动控制任务的优先级。
- 虚拟-显示进程使用的虚拟内存量。
- 分辨率-显示进程使用的物理内存量
- 自发性高血压-显示其他进程共享的内存量
- %s-显示进程的当前状态,可以是:
- D-不间断睡眠
- R-正在运行
- S-睡眠
- T形停止
- Z-僵尸
- %CPU-以百分比显示进程的CPU使用量
- %MEM-显示进程使用的内存量,以百分比表示
- 时间+-显示进程的总运行时间
- 命令-显示为进程调用的命令。
如果您不知道要终止的任务的进程ID,可以使用箭头键在列表中导航,或者在Linux的进程表中搜索进程名称。
要搜索进程名称,请执行以下操作按键盘上的‘L’键并键入要搜索的进程名称。一旦你发现了邪恶的过程,按键盘上的‘k’键终止该进程。现在,输入进程ID或将其留在当前突出显示的进程中,然后按‘Enter’键。接下来,输入终止信号,然后按‘Enter’键终止程序。要返回终端,请按键盘上的‘Q’键。
尽管塔顶
命令可以显示所有正在运行的进程的详细信息,如进程ID、内存消耗等,但它不太适合初学者,因为它没有显示任何键映射或如何使用它。另一方面,这个HTOP
命令具有更友好的用户界面,即使对于命令行工具也是如此。此外,它在单独的视图中显示所有细节,因此不会扰乱终端窗口。在大多数发行版中,它不是预装的,您需要使用以下命令来安装HTOP
在Linux中:
Sudo apt安装-y HTOP
要在Linux中使用HTOP管理进程,请使用以下命令:
HTOP
要终止程序,请导航到要终止的进程名称,按‘F9’,然后按Enter。如果你需要搜索和删除任何程序,按键盘上的F3键,输入名称,然后按Enter键。这个进程名称将突出显示,按F9键,然后按键盘上的Enter键终止该过程。
在Linux中通过系统监视器终止进程
如果您觉得命令行方法对您来说很难,您可以使用每个Linux发行版上提供的内置系统监视工具。要了解其工作原理,请从应用程序菜单中打开系统监控工具,然后按照以下步骤操作。
1.打开系统监视器工具后,您将在顶部看到名为的三个选项卡-进程、资源和文件系统。要管理您的流程,请访问“进程”标签。在这里,您将看到当前正在运行的所有进程。按‘CTRL+F’搜索进程名称。点击你想要终止的进程名称,然后点击“End Process”。
2.然后,系统会提示您是否要结束该流程。继续,点击红色的“结束进程”按钮,终止Linux中的进程。
常见问题解答
如何停止Linux中的所有进程?
如果需要停止Linux中特定用户的所有进程(登录外壳、init和特定于内核的进程除外),请按照以下语法使用pkill命令或KILLALL命令:
Pkill-u
KILLALL-U
如果您需要终止每个用户的每个进程,包括init系统,请按键盘上的‘alt+prt sc+o’键。
是否可以结束进程?
当您关闭任何不重要的后台进程或正在消耗大量系统内存的用户进程时,您释放了现在可供其他进程使用的资源。但是,在关闭任何进程之前,请确保您没有杀死一个重要的操作系统进程。
Linux中的后台进程是什么?
在Linux中,后台进程是无需外壳实例或任何用户干预即可运行的进程。可以使用任何命令查看它们-top、HTOP、PS等。
什么是僵尸进程?
已被用户终止但仍在占用内存的进程称为僵尸进程。
Ctrl+Z在Linux中做什么?
在Linux中使用CTRL+Z时,它会发送SIGTSTP信号,该信号会暂停进程,并在后台发送。当进程在后台处于挂起状态时,您不能终止该进程,直到它被带回前台。
轻松杀死Linux中的进程
终止内存占用进程是每个用户都应该学习的一项非常重要的任务。在本文中,我们既展示了命令行方法(包括诸如KILLALL和pkill之类的命令),也展示了在Linux中终止进程的图形用户界面方法。我们甚至详细介绍了如何使用TOP和HTOP等流行工具来管理您的Linux PC上的进程。如果您在使用这些工具终止进程时遇到任何问题,请在下面的评论中告诉我们。