如何在 Debian 10 中檢查和殺死殭屍進程

殭屍進程是一種已完成但由於子進程和父進程之間缺乏通信而其條目仍保留在進程表中的進程。

在本指南中,我將演示如何檢查和終止 Debian 10 中的殭屍進程。

先決條件

您需要具有 root 權限和進程表中至少一個殭屍進程條目。

如何在 Debian 10 中檢查殭屍進程

通過命令行

您可以使用如下所示的 top 命令獲取系統上運行的所有進程的列表。

為了檢查 Debian 10 機器上的殭屍進程,您需要打開一個終端並執行以下命令。

ps axo stat,ppid,pid,comm | grep -w 已失效

因為我們的機器上沒有運行任何殭屍進程。 因此,我們將在下一步中創建一個虛擬殭屍進程,以便我可以殺死它。 如果有殭屍進程在運行,該命令將返回其 PID 等。

通過圖形用戶界面

同樣也可以在 GUI 的幫助下完成。 打開一個 系統監視器實用程序 從儀表板,如下所示。

系統監視器實用程序

該工具將向您顯示在您的機器上運行的所有進程的列表。 您還可以上下滾動查看所有進程。

在系統監視器中查找殭屍進程

如何在 Debian 10 中創建一個虛擬殭屍進程

打開文本編輯器並粘貼以下代碼。 代碼已復制自 https://vitux.com/how-to-create-a-dummy-zombie-process-in-ubuntu/

#include #include #include int main () { pid_t child_pid;child_pid = fork (); 如果(child_pid > 0){ 睡眠(60); }其他{退出(0); } 返回 0; }

Save 文件為zombie.c。 殭屍進程將運行 60 秒。 但是,您可以在睡眠功能中調整時間。

接下來,打開一個終端並運行以下命令來編譯這個程序。 這將創建一個可執行的目標文件。

cc 殭屍.c -o 殭屍

接下來,運行以下命令以創建一個將存活 60 秒的殭屍進程。

./殭屍

虛擬殭屍進程

如何殺死殭屍進程

通過命令行

現在我們有了一個殭屍進程,因此我們也可以殺死它。

打開終端,執行以下命令即可知道殭屍父進程ID。

ps axo stat,ppid,pid,comm | grep -w 已失效

您可以從以下屏幕截圖中看到,父進程 ID 是命令結果中的第二個條目。

殺死殭屍進程

在具有 root 權限的終端上發出以下命令,這將殺死殭屍進程。

kill -9 (在我們的例子中是 2844)

如果您使用 ps 命令檢查進程,您將不會注意到系統上正在運行任何僵死或失效的進程。

通過圖形用戶界面

再次從儀表板打開系統監視器實用程序並列出所有用戶的進程。 您會注意到一個殭屍進程在您的機器上運行。

在 Debian GUI 中殺死 Zombie 進程

現在,右鍵單擊殭屍進程並單擊“終止”按鈕以終止該進程。 您將被要求確認。 單擊“終止進程”進行確認。 您還將被要求提供 root 用戶憑據。

我希望本教程對您理解殭屍進程有很大幫助。