我的 Linux 服务器上分配的 ptys (/proc/sys/kernel/pty/nr) 数量不断增长,并且比活动登录、终端和屏幕会话的数量高出几个数量级。只有系统重启才能重置它。
我怎样才能找出哪个进程正在消耗 pty?
我尝试了答案 1 中的建议,但是
# lsof -n | grep pts | wc -l
137
# cat /proc/sys/kernel/pty/nr
696
# uname -a
Linux spitzer 2.6.32-34-server #77-Ubuntu SMP Tue Sep 13 20:54:38 UTC 2011 x86_64 GNU/Linux
答案1
答案2
Ptys 是文件句柄。您可以使用它lsof
来找出哪个进程保持哪些文件处于打开状态。
# lsof -n | grep pts
答案3
一个 pty 可以有多个与之关联的“文件”。如果考虑到这一点,kernel.pty.nr 编号将与 lsof 编号匹配。
cat /proc/sys/kernel/pty/nr
10
lsof -n | fgrep pts | wc -l
58
lsof -n | fgrep pts | sed 's/ */ /g' | cut -f9 -d' ' | sort | uniq | wc -l
10