O que significa [...] em 'ps' e como você cria um processo como esse?

10

Ao executar o ps, você obtém algo como:

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]

Todos os processos daemon geralmente têm os colchetes '[..]' ao seu redor.

O que eles significam (se houver)? Como você cria um processo que aparece assim?

A razão pela qual pergunto é que criamos um daemon de sistema a partir do rcS (o programa usa fork para criar o daemon), mas a entrada ps se parece com:

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

Então, estávamos nos perguntando se é importante ter os colchetes '[..]' e como os processos os obtêm em primeiro lugar.

Obrigado.

user626201
fonte

Respostas:

14

Os colchetes são usados ​​para processos que não possuem uma linha de comando associada (principalmente threads do kernel e alguns serviços do sistema).

Se bem me lembro, você poderá obter o mesmo efeito para o seu processo definindo argv[0]a sequência vazia.

Frédéric Hamidi
fonte
11
mostly- o que pode fazer uma exceção?
N611x007
O que significa o trailing / 0?
precisa saber é o seguinte
4
@RyanN, significa que o thread do kernel está sendo executado na primeira CPU.
Frédéric Hamidi
5

Sim, são threads do kernel, criados por subsistemas do kernel. Eles são criados usando as funções kthread_create () ou kernel_thread () no kernel.


fonte
2

Seu exemplo nem mostra o [...], então não tenho 100% de certeza do que você está falando. No entanto, é possível modificar os argvargumentos de qualquer programa (no Linux). Os argumentos são refletidos na saída de ps.

Chris Eberle
fonte
2
[...]foi concebido como um espaço reservado. Eu estava me referindo ao [kthreadd]<- o []que encapsula o nome.
ah entendo. Então, sim, acredito que esses são processos do kernel.
Chris Eberle