Назад | Перейти на главную страницу

Как узнать, что потребляет Linux pty

Количество выделенных ptys (/ proc / sys / kernel / pty / nr) на моем Linux-сервере постоянно растет и на порядки превышает количество активных входов в систему, терминалов и сеансов экрана. Кажется, что только перезагрузка системы сбрасывает ее.

Как я могу узнать, какой процесс съедает 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

Согласно Grawity's ответ на суперпользователе то, что вы видите, связано с ошибкой в ​​Linux. / proc / sys / ядро ​​/ pty / номер не уменьшается, когда pty больше не используется. Вот почему lsof показывает меньшее число. Это было обратил внимание в ноябре 2009 г., но не фиксированный до августа 2011 г.

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