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.


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.


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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.