📅  最后修改于: 2020-12-07 08:13:45             🧑  作者: Mango
在操作系统中,计算机的RAM上有许多程序。这些程序可以由OS本身或用户运行,这些程序称为“进程” 。通常,一个进程具有其生命周期,并在完成或手动退出时被其自身终止。但是,有时,由于进程调度中的错误或由于消耗大量RAM或CPU,进程可能会挂起。在这种情况下,我们需要手动终止进程,以免机器意外挂断。
Linux允许使用各种工具杀死错误的进程。为了终止进程,我们必须具有进程信息,例如PID,信号等。
要终止进程,我们必须访问进程信息。有多种命令可跟踪进程,例如top , ps , pgrep和pidof。
Linux系统允许我们以各种方式杀死进程,例如通过其名称或进程ID(PID)杀死进程。因此,我们将根据需要使用上述命令。
top命令用于列出Linux系统中所有正在运行的进程。它显示详细信息,例如PID,用户名,CPU使用率,时间,已执行的命令等。
要找到进程,请执行以下命令:
top
上面的命令将显示正在运行的进程。考虑以下输出:
我们可以通过在终端上上下滚动来浏览过程。 top命令提供了各种过滤器来过滤进程,例如进程名称,cpu使用情况等。要从顶部退出,请按“ q”键,它将返回到终端。但是,我们也可以通过按CTRL + C键使用传统的退出选项。
ps命令是显示进程信息的另一种方法。 ps命令使用许多选项,例如aux,这意味着:
a:显示所有用户的进程
u:显示特定用户使用的进程
x:显示所有过程。如果我们不指定x选项,它将不会显示GUI进程。
执行以下命令以列出所有正在运行的进程:
ps aux
考虑以下输出:
ps命令的输出类似于top命令。进程名称和PID在前两列中给出,而进程名称在最右列中给出。
ps命令比top命令更有用。它允许我们使用grep命令过滤输出。
假设我们要使用用户名javatpo +过滤所有进程,请执行以下命令:
ps aux | grep javatpo+
上面的命令将通过grep命令过滤所有指定的进程。考虑以下输出:
上面的输出一起提供了ps命令和grep命令的功能。
pidof命令还使我们能够找到进程。如果要按名称跟踪进程,则pidof命令将非常有用。与进程名称一起使用时,它将显示进程的PID。
要查找进程的PID,请执行以下pidof命令:
pidof process_name
如果我们正在运行的进程的名称确切为chrome ,请执行以下命令以获取其PID。
pidof chrome
考虑以下输出:
现在,当我们跟踪流程时,我们可以终止流程。有多种用于杀死进程的命令,例如kill , kill , top和pkill。
在终止进程之前,有必要知道我们可以终止哪些进程。以下是有关终止进程的一些要点:
如果您知道确切的进程名称,它没有由任何其他用户运行,并且没有处于Z或D状态,则killall命令是杀死进程的最简单方法。在kill all命令中,无需定位进程或PID。要终止进程,请执行以下命令:
killall firefox
上面的命令将终止进程并退出firefox浏览器。考虑以下输出:
如果该命令成功终止了该进程,则不会给出任何输出。
要强制终止进程,请使用-SIGKILL执行killall命令,如下所示:
killall -SIGKILL process_name
我们也可以使用-9代替-SIGKILL。
要以交互方式终止进程,请执行以下命令:
killall -i process_name
要以其他用户身份杀死进程,请执行以下命令:
sudo killall process_name
通过使用-o和-y标志,我们还可以在固定的时间段内终止进程。要终止已运行20分钟以上的进程,请执行以下命令:killall -o 20m process_name
要终止运行时间少于20分钟的进程,请执行以下命令:
killall -y 20m process_name
使用时间段的缩写如下:
秒:s
分钟:米
小时:h
天:d
周:w
个月:M
年:y
有时我们不知道进程的确切名称;在这种情况下,pkill命令将是杀死进程的最有用的工具。它允许我们通过输入匹配的进程名称来杀死进程。例如,我们要杀死所有具有匹配名称java的进程,执行命令如下:
pkill java
它将关闭所有包含名称java的进程。同样,为了杀死firefox进程,请执行以下命令:
pkill fire
考虑以下输出:
如果pkill命令成功执行,将不会显示任何输出。
要通过pkill命令强制杀死进程,请按以下步骤执行:
pkill -SIGKILL process_name
we can also use -9 instead of -SIGKILL.
kill命令是杀死进程的最简单工具。我们只需要一个流程的PID。一旦我们获得了流程的PID,它就是一个简单的流程。要终止进程,请先执行kill命令,再执行PID。要找到进程的PID,请使用top或ps aux命令,如上所述。
要终止具有PID 5296的进程,请执行以下命令:
kill 5296
要强制终止进程,请使用-SIGKILL或-9选项:
kill -SIGKILL 5296
上面的命令将终止具有PID 5296的过程。
top命令使我们能够定位并终止进程。通过使用top命令终止进程是一个简单的过程。首先,执行top命令以定位进程,然后在命令运行时按“ k”键。它将使您陷入进程终止模式,输入要终止的进程的PID。考虑以下输出:
从上面的输出中可以看到,从进程列表上方可以选择一个“ PID信号/终止”来终止该进程。输入过程的PID,然后按ENTER键。
如果我们将PID保留为空白,它将终止最顶层的过程。
我们还可以通过Linux的称为系统监视器的图形环境终止进程。要通过系统监视器终止进程,请执行以下步骤:
步骤1:搜索或浏览系统监视器,按Enter键将其打开。
步骤2:它将列出您的Linux系统的所有正在运行的进程。考虑下图:
步骤3:浏览该进程,然后右键单击要终止的进程。
步骤4:选择“杀死”选项。另外,我们可以使用CTRL + K键将其杀死。