> 进程管理 > kill

kill 命令指南:结束进程

`kill` 命令用于向在 Linux 系统上运行的进程发送信号,以控制该进程。主要用于结束进程(kill),但也可以发送其他类型的信号来改变进程的行为。通过本指南,您将学习 `kill` 命令的基本用法以及如何利用各种信号。

kill 概述

`kill` 命令向具有特定进程 ID(PID)的进程发送信号。最常见的信号是请求终止进程的信号,但根据信号的类型,进程可能会有不同的反应。例如,可以请求进程暂停或重新加载配置文件。

进程 ID (PID) 的重要性

`kill` 命令基本上以 PID 作为参数。因此,确切了解您想要控制的进程的 PID 是很重要的。您可以使用 `ps` 命令或 `top` 命令来确认进程的 PID。

kill 的主要角色

  • 结束进程: 强制或正常结束不再需要或发生故障的进程。
  • 进程重启/重新加载: 通过发送特定信号来促使进程重新读取配置文件或重启。
  • 系统资源管理: 结束占用过多资源的进程,以确保系统稳定性。

最常用的信号

虽然有多种信号,但以下两种是最常用的:

主要信号

  • **SIGTERM (15, 默认值)**: 向进程发送 '结束' 的温和请求。接收到此信号时,进程可以执行清理工作并结束。在大多数情况下,首先尝试此信号。
  • **SIGKILL (9)**: 立即强制结束进程。进程无法忽略或拦截此信号,并且将被强制结束,而没有执行清理工作的机会。应作为最后手段。

主要 kill 命令选项

`kill` 命令使用信号编号或信号名称来控制进程。发送信号到特定进程时,必须准确指定该进程的 PID。

1. 基本用法

2. 有用的信号

3. 查看所有信号列表

生成的命令:

请尝试组合命令。

描述:

`kill` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

killall 命令(通过名称结束进程)

`killall` 命令与 `kill` 不同,使用进程的名称而不是 PID 向所有与该名称匹配的进程发送信号。这在结束特定应用程序的所有实例时非常方便。

正常结束名称进程

killall nginx

向所有名为 `nginx` 的进程发送 SIGTERM 信号,请求正常结束。

强制结束名称进程

killall -9 firefox

向所有名为 `firefox` 的进程发送 SIGKILL 信号,立即强制结束。

仅结束特定用户的进程

killall -u $(whoami) chrome

仅结束当前用户的 `chrome` 进程。不会影响其他用户的 `chrome` 进程。

pkill 命令(通过模式结束进程)

`pkill` 命令与 `killall` 类似,通过名称结束进程,但具有更大的灵活性,因为它使用正则表达式模式来查找进程。这在通过部分名称查找进程或一次结束多个相关进程时非常有用。

正常结束通过模式查找的进程

pkill http

向所有名称中包含 'http' 的进程发送 SIGTERM 信号以结束它们。 (例如:`httpd`、`apache2` 等)

强制结束通过模式查找的进程

pkill -9 mysql

向所有名称中包含 'mysql' 的进程发送 SIGKILL 信号以强制结束。

结束特定用户的进程

pkill -u www-data php-fpm

结束属于 `www-data` 用户的所有 'php-fpm' 进程。

使用示例

`kill`、`killall`、`pkill` 命令的各种应用示例,帮助您有效管理系统进程。

结束特定进程 ID (PID)

kill 12345

向 PID 为 `12345` 的进程发送 SIGTERM 信号以尝试正常结束。

强制结束进程(使用 PID)

kill -9 54321

当 PID 为 `54321` 的进程没有响应时,使用 `SIGKILL` 信号强制结束。

Nginx 进程重新加载(使用 SIGHUP)

sudo kill -1 $(cat /run/nginx.pid)

找到 Nginx 的主进程(PID),发送 `SIGHUP` 信号以重新读取配置文件。(Nginx 进程 PID 可以通过 `ps aux | grep nginx` 等命令确认)

通过名称结束所有 Chrome 浏览器

killall chrome

正常结束所有正在运行的 Chrome 浏览器进程。(窗口关闭后未保存的内容可能会丢失)

结束用户 'johndoe' 的所有进程

sudo killall -9 -u johndoe

强制结束用户 `johndoe` 正在运行的所有进程。(需要管理员权限)

结束占用 CPU 较高的进程(示例)

# 1. 使用 top 或 htop 确认 PID(例如:12345)
# 2. 结束该 PID
kill 12345

`top` 或 `htop` 确认占用 CPU 较高的进程的 PID 后,结束的常见场景。


相同类别命令