在我的Linux服务器上分配的ptys(/ proc / sys / kernel / pty / nr)数量不断增长,超过了活动login,terminal和屏幕会话数量级的数量。 只有系统重新启动重置似乎重置它。
我怎样才能知道哪个进程吃掉了pty的?
我在答案1中尝试了这个build议,但是
# 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
根据grawity对超级用户的回答 ,你所看到的是由于linux中的一个bug。 / proc / sys / kernel / pty / nr在pty不再使用时不递减。 这就是为什么lsof显示一个较低的数字。 这在2009年11月被注意到 ,但直到2011年8月才被修复 。
Ptys是文件句柄。 您可以使用lsof来找出哪个进程保持打开哪些文件。
# lsof -n | grep pts
一个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