首頁 > 程序管理 > 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. 查看所有信號列表

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`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,然後終止的常見場景。


相同類別命令