Que signifie le [..] dans «ps» et comment créer un processus comme celui-ci?


10

Lorsque vous exécutez ps, vous obtenez quelque chose comme:

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]

Tous les processus démon ont généralement les parenthèses «[..]» autour d'eux.

Que signifient-ils (le cas échéant)? Comment créez-vous un processus qui ressemble à ceci?

La raison pour laquelle je demande est que nous créons un démon système à partir du rcS (le programme utilise fork pour créer le démon), mais l'entrée ps ressemble à:

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

Nous nous demandions donc s'il était important d'avoir les parenthèses «[..]» et comment les processus les obtenaient en premier lieu.

Merci.


Réponses:


14

Les crochets sont utilisés pour les processus qui n'ont pas de ligne de commande associée (principalement les threads du noyau et certains services système).

Si je me souviens bien, vous pourriez être en mesure d'obtenir le même effet pour votre processus en définissant argv[0]la chaîne vide.


1
mostly- qu'est-ce qui peut faire une exception?
n611x007

Que signifie le suivi / 0?
RyanN

4
@RyanN, cela signifie que le thread du noyau s'exécute sur le premier processeur.
Frédéric Hamidi

5

Oui, ce sont des threads du noyau, créés par des sous-systèmes du noyau. Ils sont créés à l'aide des fonctions kthread_create () ou kernel_thread () dans le noyau.


2

Votre exemple ne montre même pas le [...], donc je ne suis pas sûr à 100% de ce dont vous parlez. Cependant il EST possible de modifier les argvarguments de n'importe quel programme (sous Linux). Les arguments sont reflétés dans la sortie de ps.


2
[...]a été conçu comme un espace réservé. Je faisais allusion au [kthreadd]<- le []qui encapsule le nom.

Ah, je vois. Alors oui, je crois que ce sont des processus du noyau.
Chris Eberle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.