Em muitos casos, "lsof" não está instalado nas máquinas com as quais tenho que trabalhar, mas a "função" de lsof seria muito necessária (por exemplo, no AIX). : \
Existem "lsof" como aplicativos no mundo não Windows?
UPDATE: por exemplo: preciso saber que processos usam o diretório "/ home / username"?
process
open-files
administration
lsof
LanceBaynes
fonte
fonte
Respostas:
Eu sei
fuser
, veja se está disponível no seu sistema.fonte
sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | less
pode mostrar todos os processos que possuem arquivos abertos no sistema de arquivos montado/
. Consulte a página de manual para obter ajuda específica.sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | while read user pid flags rest; do printf '%10s %10s %10s %s\n' $user $pid $flags "$(</proc/$pid/cmdline)"; done | less
O Unix Rosetta Stone é um bom recurso para esse tipo de perguntas. Menciona algumas alternativas para lsof (veja abaixo). Observe, no entanto, que lsof é o aplicativo padrão de fato para o que faz.
Se tudo o que você deseja é encontrar os IDs do processo que possuem um arquivo específico aberto, você pode usá-lo
fuser
em qualquer sistema compatível com POSIX.Em sistemas operacionais com um
/proc
diretório, você pode consultar os arquivos abertos por um processo (o inverso dolsof
modo de operação mais comum) através das informações em/proc
. Alguns sistemas operacionais possuem comandos para isso:procfiles
é enviado com o sistema (desde o AIX 5.2). Consulte também Atualização e uso das ferramentas de desempenho do AIX 5.2 e exemplos de comandos lsof, pfiles, procfiles .pfiles
(existente desde 2.5 ).fonte
Se você executar o Solaris, uma alternativa para
lsof
, que não está instalada por padrão e pode bloquear o ZFS, épfiles
.por exemplo:
pfiles /proc/*
fonte
Minha versão, com apenas um pouco menos de utilidade:
É certo que ele pode não lidar com todos os casos de canto, mas está funcionando no meu caso de uso.
fonte
Isso deve fazer o truque. Ele fornecerá todos os mapeamentos do descritor de arquivos, exceto aqueles que:
Se você já sabe que se importa apenas com os mapeamentos de determinados programas, pode usar algo mais ao longo das linhas de:
fonte
Às vezes
lsof
é instalado em/usr/sbin
Se
/usr/sbin
não faz parte do seu$PATH
, você pode perder o comando instalado.Verifique com
fonte