导读
您已经启动了一个应用程序(无论是从您最喜爱的桌面菜单还是从命令行),并且开始使用该启动的应用程序,只能将其锁定在您上,停止执行或意外死亡。您尝试再次运行该应用程序,但事实证明,原始版本不会完全关闭。
你是做什么?你杀死这个过程。但是怎么样 不管相信还是不相信,你最好的打赌最常见于命令行。幸运的是,Linux有一些必要的工具来授权用户杀死一个错误的过程。但是,在您立即启动该命令以终止进程之前,您首先必须知道该进程是什么。你如何处理这个分层的任务?这实际上很简单,一旦你知道可以使用的工具。
让我介绍一下说的工具。
几乎所有的Linux发行版,无论是桌面还是服务器,我将要介绍的步骤将会起作用。我将严格按照命令行进行处理,打开终端并准备输入。
查找过程
杀死无反应过程的第一步就是找到它。有两个命令用于定位一个进程:top和ps。顶部是每个管理员应该知道的工具。随着顶部,您将获得当前正在运行的进程的完整列表。从命令行,发回顶部查看正在运行的进程的列表
从这个列表中你会看到一些相当重要的信息。比方说,Chrome已经变得没有反应。根据我们的顶级 显示,我们可以看出,使用进程ID(PID)3827,3919,10764和11679有四种运行的chrome实例。使用一种特定的杀死进程的方法,这个信息将是重要的。
虽然顶部是非常方便,但并不总是获得所需信息的最有效手段。假设您知道Chrome进程是您需要杀死的,而您不希望看到顶部提供的实时信息。为此,您可以使用ps命令并通过grep过滤输出。的PS命令报告的当前过程,并快照的grep模式匹配的打印线。我们通过grep过滤ps的原因很简单:如果您自己发出ps命令,您将获得所有当前进程的快照列表。我们只想要与Chrome关联的列表。
ps aux | grep chrome
该辅助选项如下:
a =为所有用户显示进程
u =显示进程的用户/所有者
x =还显示未附加到终端的进程
当您搜索有关图形应用程序的信息时,x选项很重要。
当您发出上述命令时,您将获得比您需要的更多信息(图2),以防止某个进程的死亡,但有时比使用top更有效。
杀死进程
现在我们来到杀死这个过程的任务。我们有两个信息将帮助我们杀死错误的过程:
1、进程名称
2、进程ID
您使用的将确定用于终止的命令。有两个命令用于杀死进程:
1、杀死 - 通过ID杀死一个进程
2、killall - 按名称杀死一个进程
还可以将不同的信号发送到两个kill命令。您发送的信号将由kill命令中要求的结果决定。例如,您可以将HUP(挂起)信号发送到kill命令,这将有效地重新启动该过程。当您需要立即重新启动的过程(例如,在守护程序的情况下),这永远是一个明智的选择。您可以通过发出kill -l来获取可以发送到kill命令的所有信号的列表。你会发现很多信号
最常见的杀戮信号是:
信号名称
单值
影响
SIGHUP
1
挂断
SIGINT
2
从键盘中断
SIGKILL
9
杀死信号
SIGTERM
15
终止信号
SIGSTOP
17,19,23
停止进程
这是很好的,您可以使用信号值代替信号名称。所以你不必记住各种信号的所有名称。所以,现在我们使用kill命令来杀死我们的chrome实例。此命令的结构将是:
kill SIGNAL PID
其中SIGNAL是要发送的信号,PID是要被杀死的进程ID。我们已经知道,从我们的ps命令我们要杀死的ID是3827,3919,10764和11679.所以要发送杀死信号,我们会发出命令:
一旦我们发布了上述命令,所有的chrome进程都将被成功地杀死。
我们走简单的路线!如果我们已经知道我们想要杀死的进程被命名为chrome,我们可以利用killall命令并发送相同的信号,如下所示:
kill -9 3827
kill -9 3919
kill -9 10764
kill -9 11679
上述命令的唯一注意事项是它可能无法捕获所有正在运行的chrome进程。如果在运行上述命令之后,您发出ps aux | grep chrome命令并查看剩余的进程运行,最好的方法是返回kill命令并发送信号9以通过PID终止进程。
结束过程变得容易
正如你所看到的,杀死错误的过程并不像你以前想象的那样具有挑战性。当我结束一个顽固的过程时,我倾向于从killall命令开始,因为它是最有效的终止路线。然而,当你结束一个非常有魅力的过程,杀死命令就是要走的路。
通过Linux基础和edX 的免费“ Linux简介” 课程了解Linux的更多信息 。