約数か月間実行されているAIXシステム(AIX p740 1 7)では、一部のポイントは再利用されなくなりました。
これは、次の「awk」式を使用して「who」コマンドを使用し、数週間毎日実行していることに気づきました。
who | awk '{ printf "%s %s\n", $2, $1 }' | awk -F'/' '{ printf "%s\n", $2 }' | sort -n | awk 'BEGIN{port=$1} {if (port+0 != $1) {printf "--- FREE PTS: %s - %s\n", port, $1-1}; printf "pts/%s (%s)\n", $1, $2; port=$1+1 }'
通常の出力では、常にpts/14が空きとして表示され、0、1、2などの他のすべてのポートは夜間に空きになり、ポート14を除いて翌日に再び割り当てられます(私はできません毎日約600のポートが使用されており、分析はポート14で停止しているため、pts/14と同じ動作をする可能性のあるポートをさらに調べます。
pts/0 (foo)
pts/1 (foo)
pts/2 (foo)
pts/3 (foo)
pts/4 (user12)
pts/5 (bar)
pts/6 (user12)
pts/7 (foo)
pts/8 (user13)
pts/9 (foo)
pts/10 (foo)
pts/11 (foo)
pts/12 (bar)
pts/13 (foo)
--- FREE PTS: 14 - 14
pts/15 (foo)
pts/16 (foo)
pts/17 (user13)
pts/18 (user13)
これの理由を得る方法はありますか?そして、このポートを「解放」しますか?
who
はログインのみを表示します。たとえば、tmux
/screen
はptyを開きますが、ログインとしてカウントされないと思います。プロセス(pid)はfuser /dev/pts/14
で見つけることができると思います。
(Linuxではlsof
を使用しますが、fuser
はすべてのposixシステムで使用できるはずです)。