Qual processo está comendo ptys no meu servidor Linux?

6

O número de ptys usados, conforme relatado em /proc/sys/kernel/pty/nr , está ficando constantemente maior no meu 2.6.32 server.

Como posso descobrir quais processos estão usando o ptys, a menos que sejam eliminados um após o outro e verificar se a contagem de uso diminui?

    
por Nikratio 13.05.2011 / 15:16

3 respostas

3

Este parece ser um bug no kernel do Linux 1 - o contador nunca é decrementado, mesmo se os ptys forem desalocados.

Em uma configuração padrão de 2 , ls /dev/pts deve mostrar o tamanho real alocado no momento, e você pode executar lsof para listar todos os processos usando um determinado arquivo (ou qualquer outro arquivo).

1 Corrigido em Linux 3.2 .
2 Única devpts instância.

    
por 13.05.2011 / 15:43
1

Tente usar fuser ou lsof para ver qual processo está sendo usado.

    
por 13.05.2011 / 17:00
0

Isso mostra o que você quer:

encontre / proc -maxdepth 1 -tipo d -name "[0-9] *" | enquanto ler f; do echo $ (cat "$ f / cmdline") "$ {f: 6}" $ (readlink "$ f / fd / 0"); feito

ok, para quebrar isso: - encontre todos os diretórios que contenham apenas números em proc - apenas em proc, sem subdiretórios. por convenção, esses são apenas ids de processo. - enquanto ler lê cada linha e armazena em uma variável de shell (se isso fosse um script, eu teria chamado procpiddir ou algo legal assim - é cli então eu chamo de algo curto). - o arquivo cmdline informa o que foi executado para fazer esse pid (não exatamente, mas vamos com isso) - $ {f: 6} é manipulação de variáveis bash - basicamente descarta os 6 primeiros caracteres no nome - '/ proc /' neste caso - readlink segue um link para sua conclusão. já que fd0 é stdin (fd1 é stdout, fd2 é stderr) só faz sentido que isso o leve ao tty em que o processo está sendo executado.

não há bons motivos para citar essas coisas - não há como essas variáveis terem espaços ou outros personagens engraçados. é só hábito. oh, e $ (cmd) faz parecer que a saída de um comando é uma variável de shell (talvez alguém melhor com o bash deva explicar isso melhor ou encontrar links de suporte - isso é afaik).

    
por 20.11.2012 / 23:40

Tags