「WHAT」列に関連する「w」コマンドの一貫性のない動作

「WHAT」列に関連する「w」コマンドの一貫性のない動作

w両方のコンピュータでコマンドを実行しています。どちらもまったく同じシステム(Ubuntu 16.04.3 LTS(GNU / Linux 4.4.0-87-generic x86_64))がインストールされています。 SSH経由で両方のコンピュータにhansとしてログインしました。

豊富な機械:

$ w
 13:18:20 up 26 days,  6:02,  1 user,  load average: 0.02, 0.03, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
hans     pts/0    10.xxx.xxx.xxx   10:14    1.00s  0.08s  0.00s w

機械熱:

$ w
 13:11:17 up 46 days, 46 min,  1 user,  load average: 0.02, 0.04, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
hans     pts/0    10.xxx.xxx.xxx   10:14    0.00s  0.02s  0.02s sshd: hans [priv]

列の出力が異なる理由は何ですかWHAT? on foo I see it w, on bar: I see it sshd: hans [priv].この非対称性はどこから来るのでしょうか?

答え1

このwコマンドは、経験的な方法を使用して、現在のプロセスとして表示するプロセスを決定します。 Linuxのマニュアルページではどのように機能するのか説明していませんが、私のOS Xシステムでは次のように言います。

「現在のプロセス」という概念があいまいです。現在のアルゴリズムは、「割り込みを無視しない端末で最も高い番号付きプロセス、または存在しない場合は端末で最も高い番号付きプロセス」です。たとえば、シェルやエディタなどのプログラムの重要なセクションで、または無効なプログラムがバックグラウンドフォークで実行されていて中断を無視できない場合、失敗する可能性があります。 (プロセスが見つからない場合はwが印刷されます-。)

ここで説明されている失敗モードは、現在表示されている一貫性のない動作を説明できます。

関連情報