刪除/殺死一個不會死的進程

刪除/殺死一個不會死的進程

我使用的是 Linux Ubuntu 20.04。

我有一個 PID 21 的進程:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
21  root      20   0       0      0      0 S   0.0   0.0   0:00.01 kdevtmpfs

運行後

  • sudo pkill -9 21
  • sudo kill 21

top該過程在或 的輸出中仍然可見ps aux

我怎樣才能殺死它?

答案1

正如 AB 指出的那樣,這是 Linux 核心的一個執行緒(針對一項功能),因此無法被終止。此外,殺死/刪除它也沒有任何好處。

ps當使用以下參數呼叫時可以更清楚地看到:

# ps auxfww
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    Jun07   0:00 [kthreadd]
(...)
root        21  0.0  0.0      0     0 ?        S    Jun07   0:00  \_ [kdevtmpfs]
(...)

在那裡你可以看到它是內核的後代。和RSS=0也是VSZ=0指標。

如果上述標誌不適用於您的 版本ps,請嘗試ps -ejfH以層次結構查看每個流程以及作業詳細資訊。

相關內容