Pesquisa de site

Aprenda como usar o comando ‘fuser’ com exemplos no Linux


Uma das tarefas mais importantes na administração de sistemas Linux é o gerenciamento de processos. Envolve diversas operações sob monitoramento, sinalização de processos bem como definição de prioridades de processos no sistema.

Existem inúmeras ferramentas/utilitários Linux projetados para monitorar/manusear processos como top, ps, pgrep, kill, killall, nice juntamente com muitos outros.

Neste artigo, descobriremos como encontrar processos usando um utilitário Linux cheio de recursos chamado fuser.

Leitura sugerida: Encontre os principais processos em execução por maior uso de memória e CPU

fuser é um utilitário de linha de comando simples, mas poderoso, destinado a localizar processos com base nos arquivos, diretórios ou soquete que um determinado processo está acessando. Resumindo, ajuda o usuário do sistema a identificar processos usando arquivos ou soquetes.

Como usar o fusor em sistemas Linux

A sintaxe convencional para usar o fuser é:

fuser [options] [file|socket]
fuser [options] -SIGNAL [file|socket]
fuser -l 

Abaixo estão alguns exemplos de uso do fusor para localizar processos em seu sistema.

Encontre qual processo acessando um diretório

Executar o comando fuser sem qualquer opção exibirá os PIDs dos processos que atualmente acessam seu diretório de trabalho atual.

fuser .
OR
fuser /home/tecmint

Para uma saída mais detalhada e clara, habilite -v ou --verbose como segue. Na saída, fuser imprime o nome do diretório atual, depois colunas do proprietário do processo (USER), ID do processo (PID) , o tipo de acesso (ACCESS) e comando (COMMAND) conforme imagem abaixo.

fuser -v

Na coluna ACESSO, você verá os tipos de acesso indicados pelas seguintes letras:

  1. c – diretório atual
  2. e – um arquivo executável sendo executado
  3. f – arquivo aberto, porém, f é deixado de fora na saída
  4. F – arquivo aberto para escrita, F também é excluído da saída
  5. r – diretório raiz
  6. m – arquivo mmap’ed ou biblioteca compartilhada

Encontre qual processo acessa um sistema de arquivos

A seguir, você pode determinar quais processos estão acessando seu arquivo ~.bashrc da seguinte forma:

fuser -v -m .bashrc

A opção -m NAME ou --mount NAME significa nomear todos os processos que acessam o arquivo NAME. Caso você escreva o diretório como NOME, ele será alterado espontaneamente para NOME/, para usar qualquer sistema de arquivos que possivelmente esteja montado naquele diretório.

Leitura sugerida: Encontre os 15 principais processos por uso de memória no Linux

Como matar e sinalizar processos usando o fusor

Nesta seção, trabalharemos no uso do fuser para eliminar e enviar sinais aos processos.

Para eliminar um processo que acessa um arquivo ou soquete, use a opção -k ou --kill assim:

sudo fuser -k .

Para matar um processo interativamente, onde você é solicitado a confirmar sua intenção de matar os processos que acessam um arquivo ou soquete, use a opção -i ou --interactive:

sudo fuser -ki .

Os dois comandos anteriores irão matar todos os processos que acessam seu diretório atual, o sinal padrão enviado aos processos é SIGKILL, exceto quando -SIGNAL for usado .

Leitura sugerida: Um guia para comandos Kill, Pkill e Killall no Linux

Você pode listar todos os sinais usando as opções -l ou --list-signals conforme abaixo:

sudo fuser --list-signals 

Portanto, você pode enviar um sinal aos processos como no próximo comando, onde SIGNAL é qualquer um dos sinais listados na saída acima.

sudo fuser -k -SIGNAL

Por exemplo, este comando abaixo envia o sinal HUP para todos os processos que possuem seu diretório /boot aberto.

sudo fuser -k -HUP /boot 

Tente ler a página de manual do fuser para opções de uso avançadas e informações adicionais e mais detalhadas.

Por enquanto é isso, você pode entrar em contato conosco por meio da seção de comentários abaixo para qualquer assistência que possa precisar ou sugestões que queira fazer.