想象一下:你打开一个程序(它可能来自你的桌面菜单或命令行)并开始使用它。我没想到程序会锁定、停止运行或意外崩溃。您试图再次运行该程序,但它报告原始进程没有完全关闭。
你该怎么办?你必须结束这个过程。但是怎么做呢?信不信由你,最好的解决方案大多在命令行上。幸运的是,Linux拥有用户杀死错误进程的一切必要工具。但是,在执行终止进程的命令之前,您首先需要知道进程是什么。如何应对这种任务。一旦能掌握这个工具,其实很简单...
让我给你介绍一下这些工具。
我概述的步骤可以被每个Linux发行版使用,无论是桌面还是服务器。我将仅限于命令行。请打开您的终端并开始输入命令。
终止无响应进程的第一步是定位该进程。我使用两个命令来定位进程:top和ps命令。Top是每个系统管理员都知道的工具。使用top命令,您可以知道所有当前正在运行的进程是什么。在命令行上,输入顶部的命令来查看您正在运行的程序进程(图1)
图1:上面的命令给了你很多信息。
您可以从显示的列表中看到非常重要的信息。比如Chrome浏览器反映慢。根据我们的top命令,可以看出有四个Chrome浏览器进程在运行,进程的pid号分别是3827、3919、10764和11679。这个信息很重要,可以用一种特殊的方法来结束这个过程。
虽然top命令很方便,但并不是获取想要的信息的最有效方式。你知道你想干掉哪个Chrome进程,不想看到top命令显示的实时信息。鉴于此,您可以使用ps命令和grep命令来过滤输出结果。这个ps命令可以显示当前进程列表的快照,然后使用grep命令输出匹配的样式。我们之所以通过grep命令过滤ps命令的输出,原因很简单:如果只输入ps命令,会得到当前所有进程的列表快照,但我们需要的是列出Chrome浏览器的相关进程。这个命令是这样的:
辅助选项如下:
a =显示所有用户的进度
u =显示流程的用户和所有者
x =还显示未连接到终端的进程
当你搜索图形程序的信息时,这个x参数非常重要。
当您输入上述命令时,您将获得比图2更多的信息,并且它有时比top命令更有效。
图2:使用ps命令定位所需的内容信息。
现在我们开始完成这个过程的任务。我们有两种信息可以帮助我们杀死错误的过程。
进程的名称
进程的标识号
您使用哪一个将决定如何使用终端命令。通常有两个命令来结束该过程:
通过进程标识终止进程
杀死一切——以进程的名字结束它
有两种不同的信号可以发送给结束该过程的两个命令。您发送的信号决定了您想要的结束过程命令的结果。例如,您可以向命令发送一个HUP信号来结束该过程,该命令实际上将重新启动该过程。当您需要立即重新启动一个进程时(例如,在守护进程的情况下),这是一个明智的选择。输入kill -l可以得到所有信号的列表,你会发现很多信号。
图3:可用的结束过程信号。
结束流程最常用的信号是:
信号名称
单一值
影响
SIGHUP
一个
困扰
信号情报
2
键盘中断信号
发送
九
发出终止信号
终止信号
15
发出终止信号
停止进程
17, 19, 23
停止进程
你可以用信号值代替信号名。所以不用记住各种信号名称。
所以,现在让我们用kill命令来终止Chrome浏览器进程。该命令的结构是:
这里,SIGNAL是要发送的信号,PID是被杀进程的ID。我们已经知道,来自我们的ps命令显示,我们想要结束的进程的ID号分别是3827、3919、10764和11679。因此,为了发送结束过程信号,我们输入以下命令:
一旦我们输入以上命令,Chrome浏览器中的所有进程都将被成功杀死。
我们有更简单的方法!如果我们已经知道我们想要杀死的进程的名称,我们可以使用killall命令发送相同的信号,如下所示:
顺便说一下,上述命令可能无法捕获所有正在运行的Chrome进程。如果在运行上述命令后,您输入ps aux | grep Chrome命令来过滤并查看哪些Chrome进程仍在运行,最好的方法是返回kIll命令,并通过进程ID发送信号值9来结束该进程。
如你所见,杀错的过程并不像你原本想象的那么具有挑战性。当我结束一个顽固的过程时,我倾向于使用killall命令作为结束它的有效方法。然而,当我结束一个真正活跃的进程时,kill命令是一个好方法。
1.《结束进程 怎样在 Linux 命令行下结束一个进程》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《结束进程 怎样在 Linux 命令行下结束一个进程》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/887968.html