technology

Como listar todos os descritores de arquivos abertos

.

Uma das maneiras mais fáceis de listar todos os descritores de arquivos abertos é usar o lsof comando

Se você está aqui para listar todos os descritores de arquivos abertos, então você pode estar ciente do que é um descritor de arquivo e qual é a sua utilidade, mas se você não tem conhecimento dos descritores de arquivo, deixe-me dizer-lhe que os descritores de arquivo são números inteiros não negativos que identificam arquivos abertos dentro do kernel.

E o kernel acompanha esses descritores de arquivo para garantir que, quando um processo solicitar acesso a um arquivo, o sistema saiba onde ele pode ser encontrado.

Acredito que você entenda a natureza básica de um descritor de arquivo depois de ler isso e, se quiser aprender mais sobre isso, pode leia este artigoque explica o conceito de um descritor de arquivo em detalhes.

Agora vamos continuar com este guia para mostrar as etapas para listar todos os descritores de arquivos abertos.

Listar descritores de arquivo no Linux

Há duas maneiras comuns de listar todos os descritores de arquivos abertos: Uma maneira é usar o lsof utilitário de linha de comando, e outra maneira é ler o /proc/PID/fd diretório.

Usando o comando lsof para listar todos os descritores de arquivos abertos

Primeiro, mostrarei como você pode usar o lsof comando para listar todos os descritores de arquivos abertos, que é basicamente usado para listar todos os arquivos abertos para um processo em execução em seu sistema.

Para mostrar como funciona, deixe-me dar um exemplo simples em que usarei o -p opção para listar todos os arquivos do processo específico, e para especificar o processo, estou usando o $$ para substituir o ID do processo do shell atual.

$ lsof -p $$

E aqui está a saída, que mostra que o shell bash atual tem quatro contagens de descritor de arquivo diferentes: 0, 1, 2 e 255, que são misturados com cwd (o diretório de trabalho atual), rtd (o diretório raiz), txt ( texto do programa ou código binário) e mem (arquivo mapeado na memória), que você pode suprimir para uma saída mais concisa.

Lista de arquivos abertos para processos específicos

Para remover outros descritores de arquivo como (cwd, txt, mem, informações rtd), você pode usar o -a e -d opções para especificar o intervalo de descritores de arquivo e, como de costume, use -p com o número do processo, mas aqui estou substituindo por $$ para obter o ID do processo do shell atual.

$ lsof -a -d 0-255 -p $$
Listar apenas descritores de arquivo
Listar apenas descritores de arquivo

Se você está se perguntando por que “você” está anexado ao lado dos descritores de arquivo, significa que o arquivo está aberto com permissão de leitura e gravação. Também pode ser r (arquivo aberto com permissão de leitura), w (arquivo aberto com permissão de gravação) ou W (arquivo aberto com permissão de gravação e bloqueio de gravação) no seu caso.

Usando o comando /proc/PID/fd para listar todos os descritores de arquivos abertos

A mesma coisa pode ser feita com o ls -l /proc/PID/fd comando, que também listará todos os descritores de arquivo para o processo específico.

Por exemplo, para obter uma lista de todos os descritores de arquivo para o shell atual, você pode executar o comando abaixo, que listará todos os descritores de arquivo com seus caminhos e permissões.

$ ls -l /proc/$$/fd
lista de descritores de arquivo
lista de descritores de arquivo

Se você deseja procurar um processo específico, use o ps-aux | grep para obter o número do processo e, em seguida, use o seguinte comando para listar todos os descritores de arquivo:

$ ls -l /proc/1143912/fd

A saída do comando acima:

Processe a busca de id do comando ps e use o comando ls para listar os descritores de arquivo
O comando ps retorna o ID do processo e o comando ls com listas de descritores de arquivo.

Agora cabe a você decidir qual método deseja usar para listar todos os descritores de arquivo.

Se você tiver alguma dúvida ou comentário, sinta-se à vontade para deixá-los na seção de comentários abaixo. Até lá, coloque os pés para cima e relaxe. Como sempre, o próximo artigo será publicado em breve.

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo