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:
c
– diretório atuale
– um arquivo executável sendo executadof
– arquivo aberto, porém, f é deixado de fora na saídaF
– arquivo aberto para escrita, F também é excluído da saídar
– diretório raizm
– 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.