
在運行了大約幾個月的 AIX 系統 (AIX p740 1 7) 中,某些點不再被重複使用。
使用“who”命令和以下“awk”表達式註意到這一點,每天運行數週:
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)
有什麼辦法可以查到原因嗎?並“釋放”這個端口?
答案1
who
只顯示登入資訊。例如,tmux
/screen
打開一個pty,但我認為它不算登入。我認為你可以找到進程(pid)fuser /dev/pts/14
。
(我會lsof
在 Linux 上使用,但fuser
應該可以在任何 posix 系統上使用)。