Ssh

為什麼 AIX 中的某些 pts 從未重用?

  • May 16, 2016

在執行了大約幾個月的 AIX 系統 (AIX p740 1 7) 中,一些 pt 不再被重用。

使用帶有以下“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(我不能檢查更多可以具有與 pts/14 相同行為的埠,因為每天大約有 600 個埠在使用,並且分析在埠 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 但我認為它不算作登錄。我認為您可以使用fuser /dev/pts/14.

(我會lsof在 Linux 上使用,但fuser應該可以在任何 posix 系統上使用)。

引用自:https://unix.stackexchange.com/questions/283490