ちなみに ps -aux で探しても該当するプロセスは見えません。
サーバに多数のユーザがログインやログアウトを繰り返しているような環境であれば、たくさん表示されてしまうのはやむを得ないですが、どのような環境でも増えていくものではありません。
たとえば、起動直後の Linux にリモートからログイン後、すぐログアウトしてから、コンソールからログインして who -d を行うと、以下のようになると思います。
2010-08-22 00:30 1017 id=si term=0 exit=0
2010-08-22 00:30 2008 id=l2 term=0 exit=0
pts/0 2010-08-25 15:05 3228 id=ts/0 term=0 exit=0
最初の2行は、起動中の処理の関係上書き込まれてしまうエントリなので、やむなしとして、3行目は、リモートから仮想端末0にログイン後、ログアウトしたので、エントリが残ります。
この状態で再度リモートからログインすると、再度 pts/0 が使われるので、-d しても 3 行目のエントリは見えなくなります。
しかし、多数のユーザがログイン、ログアウトするような環境では、一時に使われる仮想端末の数もかなり多くなるはずですので、たとえば夜間など、大半のユーザがログアウトしている時間帯に who -d すれば、大量のエントリが表示されてしまうと思います。
who -d は、プロセス自体が「死んで」るのですから、
ps auxで見えないのは当然で、すでに「終わって」exitます。
これはlogoutではなくシェルを終了している、という意味です。
それでは、サーバを長く運用しているとずらずらと沢山表示されてしまうものなのでしょうか?
ps -aux でプロセスは見えないのに who では沢山見えており、困っています。
ちなみに現在、who -a で 460 くらい見えていて、そのうち who -d で 420 くらいです。
※up 1686 days です。
サーバに多数のユーザがログインやログアウトを繰り返しているような環境であれば、たくさん表示されてしまうのはやむを得ないですが、どのような環境でも増えていくものではありません。
たとえば、起動直後の Linux にリモートからログイン後、すぐログアウトしてから、コンソールからログインして who -d を行うと、以下のようになると思います。
2010-08-22 00:30 1017 id=si term=0 exit=0
2010-08-22 00:30 2008 id=l2 term=0 exit=0
pts/0 2010-08-25 15:05 3228 id=ts/0 term=0 exit=0
最初の2行は、起動中の処理の関係上書き込まれてしまうエントリなので、やむなしとして、3行目は、リモートから仮想端末0にログイン後、ログアウトしたので、エントリが残ります。
この状態で再度リモートからログインすると、再度 pts/0 が使われるので、-d しても 3 行目のエントリは見えなくなります。
しかし、多数のユーザがログイン、ログアウトするような環境では、一時に使われる仮想端末の数もかなり多くなるはずですので、たとえば夜間など、大半のユーザがログアウトしている時間帯に who -d すれば、大量のエントリが表示されてしまうと思います。
なるほど。
ありがとうございます。
who -d にあるのは過去に使った仮想端末の残骸なので、
とくに気にしなければ良いということですね!
なるほど。
ありがとうございます。
who -d にあるのは過去に使った仮想端末の残骸なので、
とくに気にしなければ良いということですね!