Linux下命令列如何KILL掉一個進程?
Linux 的命令列裡面有用來停止正在執行的進程的所有所需工具。 Jack Wallen 將為您講述細節。
想像一下:你打開了一個程式(可能來自於你的桌面選單或命令列),然後開始使用這個程序,沒想到程式會鎖死、停止運作、或意外死機。你嘗試再次運行該程序,但是它反饋說原來的進程沒有完全關閉。
你該怎麼辦?你要結束進程。但該如何做?不管你信與不信,最好的解決方法大都在命令列裡。值得慶幸的是, Linux 有供用戶殺死錯誤的進程的每個必要的工具,然而,你在執行殺死進程的命令之前,你首先需要知道進程是什麼。該如何處理這一類的任務。一旦你能夠掌握這種工具,它實際上是十分簡單的…
我來概述的步驟是每個 Linux 發行版都能用的,不論是桌面版還是伺服器版。我將限定只使用命令列,請打開你的終端機開始輸入命令吧。
殺死一個沒有回應的進程的第一個步驟是定位這個進程。我用來定位進程的指令有兩個:top 和 ps 指令。 top 是每個系統管理員都知道的工具,用 top 指令,你能夠知道到目前正在執行的所有行程有哪些。在命令列裡,輸入 top 指令能夠就看到你正在執行的程式進程(圖1)
#圖 1: top 指令給你許多的資訊。
從顯示的列表中你能夠看到相當重要的信息,舉個例子,Chrome 瀏覽器反映遲鈍,依據我們的top 命令顯示,我們能夠辨別的有四個Chrome 瀏覽器的進程在運行,進程的pid 號分別是3827、3919、10764 和11679。這個訊息是重要的,可以用一個特殊的方法來結束進程。
儘管 top 指令很是方便,但也不是得到你所要資訊最有效的方法。你知道你要殺死的 Chrome 進程是那個,而且你也不想看 top 指令所顯示的即時資訊。有鑑於此,你能夠使用 ps 指令然後用 grep 指令來過濾出輸出結果。這個 ps 指令能夠顯示出目前進程清單的快照,然後用 grep 指令輸出相符的樣式。我們透過 grep 指令過濾 ps 指令的輸出的理由很簡單:如果你只輸入 ps 指令,你將會得到目前所有行程的清單快照,而我們需要的是列出 Chrome 瀏覽器行程相關的。所以這個指令是這個樣子:
ps aux | grep chrome
這裡 aux 選項如下所示:
- a = 顯示所有使用者的進程
- u = 顯示進程的使用者和擁有者
- x = 也顯示不依附於終端的進程
當你搜尋圖形化程式的資訊時,這個 x 參數是很重要的。
當你輸入以上指令的時候,你將會得到比圖 2 更多的信息,而且它有時用起來比 top 指令更有效。
#圖 2:用 ps 指令來定位所需的內容資訊。
現在我們開始結束進程的任務。我們有兩種可以幫我們殺死錯誤的進程的資訊。
- 進程的名字
- 進程的 ID (PID)
你用哪一個將會決定終端指令如何使用,通常有兩個指令來結束行程:
- kill - 透過進程 ID 來結束進程
- killall - 透過進程名稱來結束進程
有兩個不同的訊號能夠發送給這兩個結束進程的命令。你發送的訊號決定你想要從結束進程指令中得到的結果。舉個例子,你可以發送 HUP(掛起)訊號給結束進程的命令,命令實際上將會重啟這個進程。當你需要立即重啟一個程序(例如就守護程序來說),這是一個明智的選擇。你透過輸入 kill -l 可以得到所有訊號的列表,你將會發現大量的訊號。
#圖 3: 可用的結束進程訊號。
最常使用的結束行程的訊號是:
好的是,你能用訊號值來取代訊號名字。所以你沒有必要來記住所有各種各樣的信號名字。
所以,讓我們現在用 kill 指令來殺死 Chrome 瀏覽器的進程。這個指令的結構是:
kill SIGNAL PID
這裡 SIGNAL 是要傳送的訊號,PID 是被殺死的程序的 ID。我們已經知道,來自我們的 ps 指令顯示我們想要結束的進程 ID 號碼是 3827、3919、10764 和 11679。所以要發送結束進程訊號,我們輸入以下命令:
kill -9 3827 kill -9 3919 kill -9 10764 kill -9 11679
一旦我們輸入了以上命令,Chrome 瀏覽器的所有進程將會成功被殺死。
我們有更簡單的方法!如果我們已經知道我們想要殺死的那個程序的名字,我們能夠利用 killall 指令發送同樣的訊號,像這樣:
killall -9 chrome
附帶說明的是,上邊這個指令可能無法捕捉到所有正在執行的 Chrome 進程。如果,運行了上邊這個命令之後,你輸入ps aux | grep chrome 命令過濾一下,看到剩下正在運行的Chrome 進程有那些,最好的辦法還是回到kIll 命令通過進程ID 來發送信號值9 來結束這個進程。
#正如你所看到的,殺死錯誤的進程並沒有你原本想的那麼有挑戰性。當我讓一個頑固的進程結束的時候,我趨向於用 killall命令來作為有效的方法來終止,然而,當我讓一個真正的活躍的進程結束的時候,kill命令是一個好的方法。
以上是Linux下命令列如何KILL掉一個進程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

CentOS 和 Ubuntu 的關鍵差異在於:起源(CentOS 源自 Red Hat,面向企業;Ubuntu 源自 Debian,面向個人)、包管理(CentOS 使用 yum,注重穩定;Ubuntu 使用 apt,更新頻率高)、支持週期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社區支持(CentOS 側重穩定,Ubuntu 提供廣泛教程和文檔)、用途(CentOS 偏向服務器,Ubuntu 適用於服務器和桌面),其他差異包括安裝精簡度(CentOS 精

CentOS 安裝步驟:下載 ISO 映像並刻錄可引導媒體;啟動並選擇安裝源;選擇語言和鍵盤佈局;配置網絡;分區硬盤;設置系統時鐘;創建 root 用戶;選擇軟件包;開始安裝;安裝完成後重啟並從硬盤啟動。

CentOS將於2024年停止維護,原因是其上游發行版RHEL 8已停止維護。該停更將影響CentOS 8系統,使其無法繼續接收更新。用戶應規劃遷移,建議選項包括CentOS Stream、AlmaLinux和Rocky Linux,以保持系統安全和穩定。

Docker利用Linux內核特性,提供高效、隔離的應用運行環境。其工作原理如下:1. 鏡像作為只讀模板,包含運行應用所需的一切;2. 聯合文件系統(UnionFS)層疊多個文件系統,只存儲差異部分,節省空間並加快速度;3. 守護進程管理鏡像和容器,客戶端用於交互;4. Namespaces和cgroups實現容器隔離和資源限制;5. 多種網絡模式支持容器互聯。理解這些核心概念,才能更好地利用Docker。

CentOS 已停止維護,替代選擇包括:1. Rocky Linux(兼容性最佳);2. AlmaLinux(與 CentOS 兼容);3. Ubuntu Server(需要配置);4. Red Hat Enterprise Linux(商業版,付費許可);5. Oracle Linux(與 CentOS 和 RHEL 兼容)。在遷移時,考慮因素有:兼容性、可用性、支持、成本和社區支持。

CentOS 停止維護後,用戶可以採取以下措施應對:選擇兼容髮行版:如 AlmaLinux、Rocky Linux、CentOS Stream。遷移到商業發行版:如 Red Hat Enterprise Linux、Oracle Linux。升級到 CentOS 9 Stream:滾動發行版,提供最新技術。選擇其他 Linux 發行版:如 Ubuntu、Debian。評估容器、虛擬機或云平台等其他選項。

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。
