NOME
fuser - identifica processos usando arquivos ou soquetes
SINOPSE
fuser
[-fuv] [-a|-s] [-4|-6]
[-c|-m|-n space]
[ -k [-i] [-M] [-w]
[-SIGNAL] ] name ...
fuser -l
fuser -V
DESCRIÇÃO
fuser exibe os PIDs de processos usando os arquivos ou sistemas de arquivos especificados. No modo de exibição padrão, cada nome de arquivo é seguido por uma letra que indica o tipo de acesso:
c |
diretório atual. | ||
e |
executável que está em execução. | ||
f |
abre um arquivo. f é omitido no modo de exibição padrão. | ||
F |
abre arquivo para escrita. F é omitido no modo de exibição padrão. | ||
r |
diretório raiz. | ||
m |
biblioteca compartilhada ou arquivo que foram mapeados com mmap. | ||
. |
Espaço reservado, omitido no modo de exibição padrão. |
fuser retorna um código de retorno diferente de zero se nenhum dos arquivos especificados for acessado ou no caso de um erro fatal. Se pelo menos um acesso for encontrado, fuser retorna zero.
Para pesquisar processos usando soquetes TCP e UDP, o espaço de nomes correspondente deve ser selecionado com a opção -n. Por padrão, fuser procurará nos soquetes IPv6 e IPv4. Para alterar o comportamento padrão, use as opções -4 e -6. Os soquetes podem ser especificados pela porta local e remota e pelo endereço remoto. Todos os campos são opcionais, mas as vírgulas na frente dos campos ausentes devem estar presentes:
[porta_lcl][,[host_rmt][,[porta_rmt]]]
Valores simbólicos ou numéricos podem ser usados para endereços IP e números de porta.
fuser emite apenas os PIDs para stdout, todo o resto é enviado para stderr.
OPÇÕES
-a, --all
Mostra todos os arquivos especificados na linha de comando. Por padrão, apenas os arquivos acessados por pelo menos um processo são mostrados.
-c |
Igual à opção -m, usada para compatibilidade POSIX. | ||
-f |
Ignorado silenciosamente, usado para compatibilidade POSIX. |
-k, --kill
Mata os processos que acessam o arquivo. A menos que seja alterado com -SIGNAL, SIGKILL é enviado. Um processo fuser nunca mata a si próprio, mas pode matar outros processos fuser. O ID de usuário efetivo do processo que executa fuser é definido com seu ID de usuário real antes de tentar matar.
-i, --interactive
Peça confirmação ao usuário antes de encerrar um processo. Esta opção é silenciosamente ignorada se -k também não estiver presente.
-I, --inode
Para o espaço de nomes de file, deixa todas as comparações serem baseadas nos inodes do(s) arquivo(s) especificado(s) e nunca nos nomes dos arquivos, mesmo em sistemas de arquivos baseados em rede.
-l, --list-signals
Lista todos os nomes de sinal conhecidos.
-m NAME, --mount NAME
NAME specifies a file on a mounted file system or a block device that is mounted. All processes accessing files on that file system are listed. If a directory is specified, it is automatically changed to NAME/ to use any file system that might be mounted on that directory.
-M, --ismountpoint
A solicitação será atendida apenas se NOME especificar um ponto de montagem. Este é um cinto de segurança inestimável que o impede de matar a máquina se NOME não for um sistema de arquivos.
-w |
Mata apenas os processos que têm acesso de escrita. Esta opção é silenciosamente ignorada se -k também não estiver presente. |
-n ESPAÇO DE NOMES, --namespace ESPAÇO DE NOMES
Seleciona um espaço de nome diferente. Os espaços de nomes file (nomes de arquivo, o padrão), udp (portas UDP locais) e tcp (portas TCP locais) são suportados. Para portas, o número da porta ou o nome simbólico podem ser especificados. Se não houver ambiguidade, a notação de atalho nome/espaço (por exemplo, 80/tcp) pode ser usada.
-s, --silent
Operação silenciosa. -u e -v são ignorados neste modo. -a não deve ser usado com -s.
-SINAL |
Usa o sinal especificado em vez de SIGKILL ao matar processos. Os sinais podem ser especificados por nome (por exemplo, -HUP) ou por número (por exemplo, -1). Esta opção é silenciosamente ignorada se a opção -k não for usada. |
-u, --user
Anexa o nome de usuário do proprietário do processo a cada PID.
-v, --verbose
Modo detalhado. Os processos são mostrados no estilo ps. Os campos PID, USER e COMMAND são semelhantes a ps. ACCESS mostra como o processo acessa o arquivo. O modo detalhado também mostrará quando um arquivo específico está sendo acessado como um ponto de montagem, exportação de knfs ou arquivo de troca. Neste caso, kernel é mostrado em vez do PID.
-V, --version
Exibe informação da versão.
-4, --ipv4
Pesquisa apenas soquetes IPv4. Esta opção não deve ser usada com a opção -6 e só tem efeito com os espaços de nomes tcp e udp.
-6, --ipv6
Pesquisa apenas soquetes IPv6. Esta opção não deve ser usada com a opção -4 e só tem efeito com os espaços de nomes tcp e udp.
ARQUIVOS
/proc |
local do sistema de arquivos proc |
EXEMPLOS
fuser -km /home
mata todos os processos que acessam o sistema de arquivos /home de qualquer forma.
if fuser -s /dev/ttyS1; then :; else comando; fi
invoca comando se nenhum outro processo estiver usando /dev/ttyS1.
fuser telnet/tcp
mostra todos os processos na porta TELNET (local).
RESTRIÇÕES
Os processos que acessam o mesmo arquivo ou sistema de arquivos várias vezes da mesma maneira são mostrados apenas uma vez.
Se o mesmo objeto for especificado várias vezes na linha de comando, algumas dessas entradas podem ser ignoradas.
fuser só pode ser capaz de coletar informações parciais, a menos que seja executado com privilégios. Como consequência, os arquivos abertos por processos pertencentes a outros usuários podem não ser listados e os executáveis podem ser classificados apenas como mapeados.
fuser não pode relatar sobre nenhum processo para o qual não tenha permissão para consultar a tabela do descritor de arquivo. O momento mais comum em que esse problema ocorre é ao procurar soquetes TCP ou UDP ao executar fuser como um usuário não root. Neste caso, fuser relatará nenhum acesso.
Instalar o fuser com root SUID evitará problemas associados a informações parciais, mas pode ser indesejável por razões de segurança e privacidade.
Os espaços de nomes udp e tcp e soquetes de domínio UNIX não podem ser pesquisados com kernels anteriores a 1.3.78.
Os acessos pelo kernel são mostrados apenas com a opção -v.
A opção -k funciona apenas em processos. Se o usuário for o kernel, fuser imprimirá um conselho, mas não fará nada além disso.
fuser will not see block devices mounted by processes in a different mount namespace. This is due to the device ID shown in the process’ file descriptor table being from the process namespace, not fuser’s; meaning it won’t match.
BUGS
fuser -m /dev/sgX vai mostrar (ou matar com o sinalizador -k) todos os processos, mesmo se você não tiver aquele dispositivo configurado. Pode haver outros dispositivos para os quais ele também faz isso.
A opção de montagem -m vai corresponder a qualquer arquivo dentro do mesmo dispositivo que o arquivo especificado, use a opção -M também se você pretende especificar apenas o ponto de montagem.
fuser will not match mapped files, such as a process’ shared libraries if they are on a btrfs(5) filesystem due to the device IDs being different for stat(2) and /proc/<PID>/maps.
VEJA TAMBÉM
kill(1), killall(1), stat(2), btrfs(5), lsof(8), mount_namespaces(7), pkill(1), ps(1), kill(2).