En muchos casos, "lsof" no está instalado en las máquinas con las que tengo que trabajar, pero la "función" de lsof sería muy necesaria (por ejemplo, en AIX). : \
¿Hay alguna aplicación similar a "lsof" en el mundo que no es de Windows?
ACTUALIZACIÓN: por ejemplo: necesito saber que procesos utilizan el directorio "/ home / username"?
process
open-files
administration
lsof
LanceBaynes
fuente
fuente
Respuestas:
Sé de
fuser
, ver si está disponible en su sistema.fuente
sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | less
puede mostrar todos los procesos que tienen archivos abiertos en el sistema de archivos montado/
. Consulte la página del manual para obtener ayuda 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
La piedra de Rosetta Unix es un buen recurso para este tipo de preguntas. Menciona algunas alternativas para lsof (ver más abajo). Sin embargo, tenga en cuenta que lsof es la aplicación estándar de facto para lo que hace.
Si todo lo que desea es encontrar las ID de proceso que tienen abierto un archivo en particular, puede usarlo
fuser
en cualquier sistema compatible con POSIX.En los sistemas operativos con un
/proc
directorio, puede consultar los archivos abiertos por un proceso (lo contrario dellsof
modo de operación más común) a través de la información en/proc
. Algunos sistemas operativos tienen comandos para eso:procfiles
se envía con el sistema (desde AIX 5.2). Consulte también Actualización y uso de herramientas de rendimiento de AIX 5.2 y ejemplos de comandos lsof, pfiles, procfiles .pfiles
(existente desde 2.5 ).fuente
Si ejecuta Solaris,
lsof
existe una alternativa a , que no está instalada de manera predeterminada y podría ahogarse en ZFSpfiles
.p.ej:
pfiles /proc/*
fuente
Mi versión, con solo un poco menos de utilidades:
Es cierto que puede que no maneje todos los casos de esquina, pero está funcionando en mi caso de uso.
fuente
Esto debería funcionar. Le dará todas las asignaciones de descriptores de archivo, excepto las que:
Si ya sabe que solo le importan las asignaciones para ciertos programas, podría usar algo más en la línea de:
fuente
A veces
lsof
se instala en/usr/sbin
Si
/usr/sbin
no es parte de su$PATH
, podría perder el comando incluso instalado.Compruébalo con
fuente