Co oznacza [..] w „ps” i jak stworzyć podobny proces?

10

Podczas uruchamiania ps otrzymujesz coś takiego:

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]

Wszystkie procesy demonów mają na ogół nawiasy kwadratowe „[..]”.

Co one oznaczają (jeśli w ogóle)? Jak stworzyć proces, który wygląda tak?

Pytam dlatego, że tworzymy demona systemowego z rcS (program używa widelca do stworzenia demona), ale wpis ps wygląda następująco:

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

Zastanawialiśmy się więc, czy ważne jest, aby mieć nawiasy klamrowe „[…]” i w jaki sposób procesy je zdobywają.

Dzięki.

użytkownik626201
źródło
unix.stackexchange.com/questions/22121/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Odpowiedzi:

14

Nawiasy kwadratowe są używane dla procesów, które nie mają powiązanego wiersza poleceń (głównie wątków jądra i niektórych usług systemowych).

Jeśli dobrze pamiętam, możesz osiągnąć ten sam efekt dla swojego procesu, ustawiając argv[0]pusty ciąg.

Frédéric Hamidi
źródło
1
mostly- co może zrobić wyjątek?
n611x007
Co oznacza trailing / 0?
RyanN
4
@RyanN, oznacza to, że wątek jądra działa na pierwszym procesorze.
Frédéric Hamidi
5

Tak, są to wątki jądra, tworzone przez podsystemy jądra. Są one tworzone za pomocą funkcji kthread_create () lub kernel_thread () w jądrze.


źródło
2

Twój przykład nawet tego nie pokazuje [...], więc nie jestem w 100% pewien, o czym mówisz. Można jednak modyfikować argvargumenty dowolnego programu (w systemie Linux). Argumenty znajdują odzwierciedlenie w danych wyjściowych ps.

Chris Eberle
źródło
2
[...]miał być symbolem zastępczym. Miałem na myśli [kthreadd]<- to, []które zawiera nazwę.
o, rozumiem. Zatem tak, uważam, że są to procesy jądra.
Chris Eberle