'ps' 中的 [..] 是什么意思,您如何创建类似的流程?

use*_*201 11 linux daemon

运行 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]
Run Code Online (Sandbox Code Playgroud)

所有守护进程通常都有“[..]”括号。

它们是什么意思(如果有的话)?你如何创建一个看起来像这样的过程?

我问的原因是我们从 rcS 创建了一个系统守护进程(程序使用 fork 创建守护进程),但是 ps 条目看起来像:

root       207  0.0  0.2   1516   200 ?        S    00:00   0:00 /root/testdaemo
Run Code Online (Sandbox Code Playgroud)

所以我们想知道拥有 '[..]' 括号是否重要以及进程如何首先获得它们。

谢谢。

Fré*_*idi 17

方括号用于没有关联命令行的进程(主要是内核线程和一些系统服务)。

如果我没记错的话,您可以通过设置argv[0]为空字符串来为您的流程实现相同的效果。

  • @RyanN,这意味着内核线程正在第一个 CPU 上运行。 (5认同)
  • `主要` - 什么可以例外? (2认同)

小智 6

是的,它们是内核线程,由内核子系统创建。它们是使用内核中的 kthread_create() 或 kernel_thread() 函数创建的。