![Was bedeuten die [..] in „ps“ und wie erstellt man einen solchen Prozess?](https://rvso.com/image/1286479/Was%20bedeuten%20die%20%5B..%5D%20in%20%E2%80%9Eps%E2%80%9C%20und%20wie%20erstellt%20man%20einen%20solchen%20Prozess%3F.png)
Beim Ausführen ps
erhalten Sie etwa 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 im Allgemeinen in [..]
Klammern eingeschlossen.
Was bedeuten sie (falls überhaupt etwas)? Wie erstellt man einen Prozess, der so aussieht?
Der Grund für meine Frage ist, dass wir einen Systemdaemon aus dem rcS erstellen (das Programm verwendet fork, um den Daemon zu erstellen), aber der PS-Eintrag sieht folgendermaßen aus:
root 207 0.0 0.2 1516 200 ? S 00:00 0:00 /root/testdaemo
Daher haben wir uns gefragt, ob die Klammern wichtig sind [..]
und wie die Prozesse sie überhaupt erhalten.
Danke.
Antwort1
Eckige Klammern werden für Prozesse verwendet, denen keine Befehlszeile zugeordnet ist (meistens Kernel-Threads und einige Systemdienste).
Wenn ich mich recht erinnere, können Sie für Ihren Prozess möglicherweise denselben Effekt erzielen, indem Sie argv[0]
die leere Zeichenfolge festlegen.
Antwort2
Ja, es sind Kernel-Threads, die von Kernel-Subsystemen erstellt werden. Sie werden mit den Funktionen kthread_create() oder kernel_thread() im Kernel erstellt.
Antwort3
Ihr Beispiel zeigt nicht einmal das [...]
, daher bin ich mir nicht 100 % sicher, wovon Sie sprechen. Es ist jedoch möglich, die argv
Argumente jedes Programms (unter Linux) zu ändern. Die Argumente werden in der Ausgabe von wiedergegeben ps
.