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:
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.la source
mostly
- qu'est-ce qui peut faire une exception?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.
la source
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 lesargv
arguments de n'importe quel programme (sous Linux). Les arguments sont reflétés dans la sortie deps
.la source
[...]
a été conçu comme un espace réservé. Je faisais allusion au[kthreadd]
<- le[]
qui encapsule le nom.