topコマンドがwhoコマンドが表示しないコンテンツをユーザーに表示するのはなぜですか?

topコマンドがwhoコマンドが表示しないコンテンツをユーザーに表示するのはなぜですか?

Raspbian GNU / Linux 9(stretch)を実行しているRaspberry Pi 2で作業しました。

topコマンドを実行すると、コマンドに表示されない一部のユーザーが表示される理由を理解したいと思いますwho。以下はRPiで実行されたコマンドの出力です。

$ top
top - 12:36:42 up 2 days, 15:19,  2 users,  load average: 0.29, 0.34, 0.27
Tasks: 138 total,   1 running,  73 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  0.9 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :   949460 total,   354296 free,    62916 used,   532248 buff/cache
KiB Swap:   102396 total,    30972 free,    71424 used.   811488 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
10907 iceman    20   0    6144   3400   1924 S   2.3  0.4   4:05.37 rsync
10876 maverick  20   0    8128   3300   2740 R   1.6  0.3   0:36.49 top
  376 root      20   0  911240   9648   3164 S   0.7  1.0  31:58.38 dockerd
  663 root      20   0  149932   1728   1020 S   0.7  0.2  28:25.48 Xorg
  674 root      20   0  884620   3848   1764 S   0.7  0.4  22:06.18 docker-co


$ who
maverick   pts/0        2018-11-28 11:23 (73.69.181.86)
maverick   pts/1        2018-11-28 11:58 (73.69.181.86)

明確にするために、次のことを試しました。who、、、、。who -u​​who -lwho -pwho -a

ベストアンサー1

man who「manページ」(例:run)を見ると、システムのコマンドラインツールとそのパラメータに関する追加情報を見つけることができます。


該当するマニュアルページから:

top- Linuxプロセスの表示

who- 誰がログインしたかを表示

その間、以下もあります。

w- 誰がログインしたのか、何をしているのかを示します。

ユーザーが「ログイン」を実行すると、「ログイン」されます。つまり、ユーザーがシステムに認証するためのパスワードまたはキーを提供し、システムがそのユーザーのための「セッション」を開始しました。

ご覧のとおり、whoこれらのログインセッションのみが一覧表示されます。通常、セッションが関連付けられているすべての項目とともに一覧表示されます。

  • Xserverセッション(例::0最初のグラフィックセッション)
  • 端末(tty例:Ctrl++ AltF2
  • または疑似端末(pts例:SSHセッション、端末エミュレータ、または端末マルチプレクサプログラムの場合)

次のように、ログインセッションを含まないプロセスを開始する別の方法があります。

  • システムサービス(によって開始されるか、initシステムsystemdがサービスを開始するために使用するすべてのサービス)
  • ttyデバイスへのSSHセッションは要求されません - これは、ssh example.com rsync …対話型シェル()を要求するのではなく、SSH呼び出し()の直後にコマンドを実行するssh example.comと通常発生します。
  • ログインセッションでプロセスを開始し、現在のシェルからプロセスを分離してセッションから分離します(たとえば、次をdisown使用)。

しかし、システムにどのユーザーがいるかを知りたい場合(ローカルで構成されたユーザーや/etc/passwdLDAPなどの外部データベースのユーザー):

getent passwd

最後にログインした時間を知りたい場合は、次の操作を行います。

lastlog

おすすめ記事