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.


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.


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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.