Que signifient les crochets autour des processus?

62
$ ps -Awwo pid,comm,args
  PID COMMAND         COMMAND
    1 init            /sbin/init
    2 kthreadd        [kthreadd]
    3 ksoftirqd/0     [ksoftirqd/0]
    5 kworker/u:0     [kworker/u:0]
    6 migration/0     [migration/0]
    7 cpuset          [cpuset]
    8 khelper         [khelper]
    9 netns           [netns]
   10 sync_supers     [sync_supers]
   11 bdi-default     [bdi-default]
   12 kintegrityd     [kintegrityd]
   13 kblockd         [kblockd]
   14 kacpid          [kacpid]
   15 kacpi_notify    [kacpi_notify]
   16 kacpi_hotplug   [kacpi_hotplug]
   17 ata_sff         [ata_sff]
   18 khubd           [khubd]

Que signifient les parenthèses? Args renvoie-t-il toujours le chemin d'accès complet à la commande de processus (par exemple /bin/cat)?

joslin
la source
2
mon arch-nemesis, user626201, a déjà posé cette question sur stackoverflow stackoverflow.com/questions/7078258/…
joslinm
3
Oui, ce sont généralement des threads du noyau.
Stéphane Gimenez
2
Quand ne seraient-ils pas des threads du noyau? Quand "les arguments de processus sont-ils indisponibles"?
mgalgs
superuser.com/questions/389161/…
Ciro Santilli a annoncé le

Réponses:

51

Des crochets apparaissent autour des noms de commande lorsque les arguments de cette commande ne peuvent pas être localisés.

La ps(1)page de manuel de FreeBSD explique pourquoi cela se produit généralement dans les processus système et les threads du noyau:

Si les arguments ne peuvent pas être localisés (généralement parce qu’ils n’ont pas été définis, comme c’est le cas des processus système et / ou des threads du noyau), le nom de la commande est imprimé entre crochets.

La ps(1)page de manuel sur Linux est la même:

Parfois, les arguments de processus ne seront pas disponibles; dans ce cas, ps affichera le nom de l’exécutable entre parenthèses.

up_the_irons
la source
1
Qu'est-ce que les arguments non disponibles ont à voir avec le fait de ne pas imprimer le chemin complet de la commande de processus ( /bin/cat)? Je pensais que les arguments étaient les arguments passés après la commande. (Bien que la commande elle-même apparaisse bien dans argv- je ne comprends pas très bien, j'ai pensé que c'était une fonction pratique.)
n611x007
14

Du manuel:

Parfois, les arguments de processus ne seront pas disponibles; dans ce cas, psle nom de l'exécutable sera affiché entre parenthèses.

Kusalananda
la source