安卓系统

在Linux中杀死命令

黑马程序员 Linux 教程: 87 系统信息 07 kill命令基本使用

黑马程序员 Linux 教程: 87 系统信息 07 kill命令基本使用

目录:

Anonim

Linux是一个很棒的高级操作系统,但并不是完美的。 有时,某些应用程序可能会开始出现异常行为,并变得无响应或开始消耗大量系统资源。 无法响应的应用程序无法重新启动,因为原始应用程序进程永远不会完全关闭。 唯一的解决方案是重新启动系统或终止应用程序进程。

有几种实用程序可让您终止错误的进程,而将其 kill 为最常用的进程。

kill 命令

kill 是大多数Bourne衍生的shell(例如Bash和Zsh)中内置的shell。 在外壳程序和独立的 /bin/kill 可执行文件之间,命令行为略有不同。

使用 type 命令显示系统上包含 kill 所有位置:

type -a kill

kill is a shell builtin kill is /bin/kill

上面的输出表明,内置的shell优先于独立的可执行文件,并且在您键入 kill 时将使用它。 如果要使用二进制文件,请输入文件 /bin/kill 的完整路径。 ,我们将使用内置的Bash。

kill 命令的语法采用以下形式:

kill…

kill 命令将信号发送到指定的进程或进程组,使它们根据该信号进行操作。 未指定信号时,默认为 -15 (-TERM)。

最常用的信号是:

  • 1 HUP )-重新加载进程。 9 KILL )-杀死一个进程。 15 TERM )-正常停止进程。

要获取所有可用信号的列表,请使用 -l 选项调用命令:

kill -l

可以用三种不同的方式指定信号:

  1. 使用数字(例如 -1 -s 1 )。使用“ SIG”前缀(例如 -SIGHUP -s SIGHUP )。没有“ SIG”前缀(例如 -HUP -s HUP )。

以下命令彼此等效:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

提供给 kill 命令的PID可以是以下之一:

  • 如果 PID 大于零,则将信号发送到ID等于 PID 的进程。如果 PID 等于零,则将信号发送到当前进程组中的所有进程。 换句话说,该信号被发送到属于调用 kill 命令的shell的GID的所有进程。 使用 ps -efj 命令查看进程组ID(GID)。如果 PID 等于 -1 ,则信号以与用户调用命令相同的UID发送到所有进程。 如果调用用户是root用户,则将信号发送到除init和 kill 进程本身之外的所有进程;如果 PID 小于 -1 则将信号发送给eq组中的GID等于绝对值的进程的所有进程 PID

普通用户可以将信号发送到自己的进程,但不能发送信号给其他用户,而根用户可以将信号发送到其他用户的进程。

使用 kill 命令终止进程

要使用 kill 命令终止或终止进程,首先需要找到进程ID号(PID)。 您可以使用诸如 top ps pidof pgrep 类的不同命令来执行此操作。

假设Firefox浏览器已无响应,并且您需要终止Firefox进程。 要查找浏览器的PID,请使用 pidof 命令:

pidof firefox

该命令将打印所有Firefox进程的ID:

6263 6199 6142 6076

一旦知道了进程号,就可以通过发送 TERM 信号来终止所有进程号:

kill -9 2551 2514 1963 1856 1771

您可以将上述命令组合为一个命令,而不是先搜索PID然后终止进程。

kill -9 $(pidof firefox)

使用 kill 命令重新加载进程

kill 另一个常见用例是发送 HUP 信号,该信号告诉进程重新加载其设置。

例如,要重新加载Nginx,您需要向主进程发送信号。 Nginx主进程的进程ID可以在 nginx.pid 文件中找到,该文件通常位于 /var/run 目录中。

使用 cat 命令查找主PID:

cat /var/run/nginx.pid

30251

一旦找到主PID,请输入以下内容重新加载Nginx设置:

sudo kill -1 30251

上面的命令必须以root用户或具有sudo特权的用户身份运行。

结论

kill 命令用于向进程发送信号。 最常用的信号是 SIGKILL -9 ,它终止给定的进程。

杀死终端