![「ps」中的 [..] 是什麼意思以及如何創建類似的進程?](https://rvso.com/image/1286479/%E3%80%8Cps%E3%80%8D%E4%B8%AD%E7%9A%84%20%5B..%5D%20%E6%98%AF%E4%BB%80%E9%BA%BC%E6%84%8F%E6%80%9D%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E5%89%B5%E5%BB%BA%E9%A1%9E%E4%BC%BC%E7%9A%84%E9%80%B2%E7%A8%8B%EF%BC%9F.png)
運行時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
。