web-dev-qa-db-ja.com

プロセスを囲む括弧はどういう意味ですか?

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

括弧はどういう意味ですか? argsは常にプロセスコマンドへの絶対パスを返しますか(例:/bin/cat)?

63
joslinm

コマンドの引数が見つからない場合、コマンド名の前後にブラケットが表示されます。

FreeBSDのps(1)のmanページに、これがシステムプロセスとカーネルスレッドに通常発生する理由が説明されています。

引数が見つからない場合(通常、システムプロセスやカーネルスレッドのように設定されていないため)、コマンド名は角括弧内に表示されます。

Linuxのps(1)のマニュアルページにも同様に記載されています。

プロセスの引数が使用できない場合があります。これが発生すると、psはかわりに実行可能ファイル名を出力します。

51
up_the_irons

マニュアルから:

プロセスの引数が使用できない場合があります。これが発生すると、psはかわりに実行可能ファイル名を出力します。

15
Kusalananda