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
c 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 .
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
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
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 .
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
7. Listando os sinais de processos que podem ser usados com o fuser:
# fuser -l
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!
Escreva um comentário