「ps」中的 [..] 是什麼意思以及如何創建類似的進程?

「ps」中的 [..] 是什麼意思以及如何創建類似的進程?

運行時ps,您會得到類似以下內容:

root         2  0.0  0.0      0     0 ?        S<   00:00   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S<   00:00   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   00:00   0:00 [events/0]

所有守護程式通常都有[..]括號。

它們是什麼意思(如果有的話)?如何創建一個像這樣的流程?

我問的原因是我們從 rcS 建立一個系統守護程式(程式使用 fork 來建立守護程式),但 ps 條目如下所示:

root       207  0.0  0.2   1516   200 ?        S    00:00   0:00 /root/testdaemo

所以我們想知道括號是否重要[..]以及流程如何首先獲得它們。

謝謝。

答案1

方括號用於沒有關聯命令列的進程(主要是核心執行緒和一些系統服務)。

如果我沒記錯的話,您可以透過設定argv[0]為空字串來為您的進程實現相同的效果。

答案2

是的,它們是內核線程,由內核子系統創建。它們是使用核心中的 kthread_create() 或 kernel_thread() 函數建立的。

答案3

你的例子甚至沒有顯示[...],所以我不能 100% 確定你在說什麼。然而,可以修改argv任何程式的參數(在 Linux 中)。這些參數反映在 的輸出ps

相關內容