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:
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.źródło
mostly
- co może zrobić wyjątek?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
Twój przykład nawet tego nie pokazuje
[...]
, więc nie jestem w 100% pewien, o czym mówisz. Można jednak modyfikowaćargv
argumenty dowolnego programu (w systemie Linux). Argumenty znajdują odzwierciedlenie w danych wyjściowychps
.źródło
[...]
miał być symbolem zastępczym. Miałem na myśli[kthreadd]
<- to,[]
które zawiera nazwę.