Comando fuser – Descobrir processos que usam os arquivos, diretórios e sockets no Linux

Comando fuser

O comando fuser é um utilitário do Unix que permite descobrir quais processos estão usando um arquivo, um diretório ou até mesmo um socket. Além disso, o comando também retorna informações sobre o proprietário do processo e o tipo de acesso a ele.

Vamos ver como funciona o fuser.

Sintaxe:

fuser [opções] [arquivo]

Opções mais comuns:

-a, –all
    Mostrar todos os arquivos especificados na linha de comandos

-i, –interactive
    Pedir confirmação do usuário antes de matar um processo

-k, –kill
    Mata os processos que estão acessando o arquivo no momento. O sinal enviado é o SIGKILL, mas pode ser alterado com a opção -SIGNAL

-l, –list-signals
    Listar os nomes de sinais conhecidos

-m, –mount
    Mostrar todos os processos que estejam usando os sistemas de arquivos ou dispositivos de blocos nomeados

-s, –silent
    Operação silenciosa. Não use a opção -a junto com essa opção.

-u, –user
    Anexar o nome do usuário a cada PID

-v, –verbose
    Modo verboso

-w, –writeonly
    Matar apenas os processos que tenham permissão de escrita. Esta opção é ignorada se a opção -k também não estiver presente.

-V, –version
    Mostrar informações sobre a versão do utilitário

-SIGNAL sinal
    Usar o sinal especificado em vez de usar o sinal padrão SIGKILL ao matar um processo. Os sinais podem ser especificados por nome ou por número. Esta opção também será ignorada se -k também não estiver presente.

-4, –ipv4
    Buscar apenas sockets IPv4

-6, –ipv6
    Buscar apenas sockets IPv6


    Resetar todas as opções

Tipos de acesso

    Diretório atual
e    Arquivo executável rodando
f    Arquivo aberto (omitido no modo de display padrão)
F    arquivo aberto para escrita (omitido no modo de display padrão
r    Diretório root
m    Arquivo mapeado ou biblioteca compartilhada

Vamos a alguns exemplos do uso do comando fuser

Exemplos

1. Matar todos os processos que estejam acessando o sistema de arquivos montado /arquivos

# fuser -km /arquivos

2. Mostrar os processos em execução no diretório atual:

# fuser -v .

Comando fuser no Linux

Essa saída mostra, no modo verboso, o nome do diretório atual (/home/fabio), os usuários, PID, tipos de acesso e comandos em execução. Veja que o usuário fabio está rodando o vi no momento, com o tipo de acesso “c”, que significa “diretório atual”.

3. Verificando se algum processo está usando sockets TCP ou UDP. Vamos descobrir se algum processo está usando a porta 22 (SSH):

# fuser -v -n tcp 22

Comando fuser no Linux

Veja que temos conexões ocorrendo na porta 22, e o processo associado é o sshd.

4. Vamos matar os processos associados à porta 22 agora:

# fuser -i -k 22/tcp

Comando fuser no Linux

Note que ao usarmos a opção -i o fuser entra em modo interativo, nos perguntando sobre cada processo que será morto.

5. Visualizar todos os processos no diretório atual, sem informações extras:

# fuser .

Mais comando fuser no Linux

Esse comando retornou os PIDs dos processos, juntamente com uma letra que indica o tipo de acesso de cada processo.

6. Vamos matar um processo agora. Vimos no exercício 2 que o usuário fábio está usando o vi no momento, estando esse processo aberto no diretório /home/fabio. Vamos matar esse processo com o fuser. Especificamos o diretório sendo acessado e então no modo interativo escolhemos o processo que deve ser encerrado pelo seu PID:

# fuser -ki /home/fabio

Matar processo com comando fuser no Linux

7. Listando os sinais de processos que podem ser usados com o fuser:

# fuser -l

Listar sinais de processos com comando fuser no Linux

O comando fuser pode ser usado de muitas outras maneiras, e neste artigo mostramos alguns exemplos. Não deixe de consultar as páginas de manual do utilitário para obter mais informações sobre o uso do fuser, se desejado.

Até o próximo comando!

 

Sobre Fábio dos Reis (1273 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*