Linux Kill命令

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

有几种实用程序可以终止错误的进程 kill 最常用的。

kill 命令

kill 大多数Bourne派生的外壳(例如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 (OPTIONS) (PID)..

kill 该命令将信号发送到指定的过程或过程组,并使它们根据该信号起作用。如果未指定信号,则默认情况下 -15 (-句号)。

最常用的信号是:

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

要获取所有可用信号的列表, -l 选项:

kill -l

Linux Kill命令 1

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

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

以下命令彼此等效:

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

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

  • 如果 PID 如果大于零,则将信号发送到具有相同ID的进程 PID
  • 如果 PID 如果等于零,则将信号发送到当前过程组中的所有过程。也就是说,信号被发送到属于调用程序外壳的GID的所有进程 kill 命令使用方法 ps -efj 显示进程组ID(GID)的命令。
  • 如果 PID 平等 -1,信号将以与调用用户相同的UID发送到所有进程。如果主叫用户是root,则信号为init, kill 流程本身。
  • 如果 PID 小于 -1,信号被发送到进程组eq中的所有进程,并且GID为 PID

普通用户可以向他们的进程发送信号,但是不能向属于其他用户的进程发送信号,但是根用户可以向其他用户的进程发送信号。

使用脚本的过程 kill 命令

终止或终止进程 kill 该命令应首先找到进程ID号(PID)。可以使用不同的命令来完成此操作,例如: toppspidofpgrep

假设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终止指定的进程。

如果您有任何疑问或反馈,请随时发表评论。