Was bedeuten die [..] in 'ps' und wie erstellen Sie einen solchen Prozess?

8

Wenn Sie ps ausführen, erhalten Sie Folgendes:

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]

Alle Daemon-Prozesse sind in der Regel in eckigen Klammern "[..]" angegeben.

Was bedeuten sie (wenn überhaupt)? Wie erstellen Sie einen Prozess, der so aussieht?

Der Grund, den ich frage, ist, dass wir einen System-Daemon aus dem rcS erstellen (das Programm verwendet fork, um den Daemon zu erstellen), aber der ps-Eintrag sieht so aus:

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

Wir haben uns also gefragt, ob es wichtig ist, die Klammern "[..]" zu haben und wie Prozesse sie überhaupt bekommen.

Vielen Dank.

user626201
quelle
unix.stackexchange.com/questions/22121/…
Ciro Santilli 新疆改造中心 六四事件 法轮功

Antworten:

14

Eckige Klammern werden für Prozesse verwendet, denen keine Befehlszeile zugeordnet ist (hauptsächlich Kernel-Threads und einige Systemdienste).

Wenn ich mich richtig erinnere, können Sie möglicherweise den gleichen Effekt für Ihren Prozess erzielen, indem Sie festlegen argv[0] zu der leeren Zeichenfolge.

Frédéric Hamidi
quelle
1
mostly - Was kann eine Ausnahme machen?
n611x007
Was bedeutet die abschließende / 0?
RyanN
4
@RyanN, dies bedeutet, dass der Kernel-Thread auf der ersten CPU ausgeführt wird.
Frédéric Hamidi
5

Ja, es handelt sich um Kernel-Threads, die von Kernel-Subsystemen erstellt wurden. Sie werden mit den Funktionen kthread_create () oder kernel_thread () im Kernel erstellt.


quelle
2

Ihr Beispiel zeigt nicht einmal die [...]Ich bin mir also nicht zu 100% sicher, wovon du sprichst. Es ist jedoch möglich, die zu ändern argv Argumente eines beliebigen Programms (unter Linux). Die Argumente spiegeln sich in der Ausgabe von wider ps.

Chris Eberle
quelle
2
[...] war als Platzhalter gedacht. Ich bezog mich auf die [kthreadd] & lt; - die [] das kapselt den Namen.
ah ich sehe. Dann glaube ich ja, das sind Kernel-Prozesse.
Chris Eberle