it-swarm.com.de

Was bedeuten die Klammern um Prozesse?

$ 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]

Was bedeuten die Klammern? Gibt args immer den vollständigen Pfad zum Prozessbefehl zurück (z. B. /bin/cat)?

63
joslinm

Um Befehlsnamen werden Klammern angezeigt, wenn die Argumente für diesen Befehl nicht gefunden werden können.

Die Manpage ps(1) unter FreeBSD erklärt, warum dies normalerweise bei Systemprozessen und Kernel-Threads der Fall ist:

Wenn die Argumente nicht gefunden werden können (normalerweise, weil sie nicht festgelegt wurden, wie dies bei Systemprozessen und/oder Kernel-Threads der Fall ist), wird der Befehlsname in eckigen Klammern angegeben.

In der Manpage ps(1) unter Linux heißt es ähnlich:

Manchmal sind die Prozessargumente nicht verfügbar. In diesem Fall druckt ps stattdessen den Namen der ausführbaren Datei in Klammern.

51
up_the_irons

Aus dem Handbuch:

Manchmal sind die Prozessargumente nicht verfügbar. In diesem Fall druckt ps stattdessen den Namen der ausführbaren Datei in Klammern.

15
Kusalananda