Tengo 30 instancias de un proceso ejecutándose en un servidor y quiero registrar archivos abiertos para cada proceso para su análisis.lsof debería dar todos los archivos abiertos para un conjunto de pids
Me corrió el siguiente comando:
* ps auwwx | grep PROG_NAME | awk '{print $2}' | xargs lsof -p | less
It quejas de que, "lsof: error de estado en: No existe el fichero o directorio"
Sin embargo, si me quedo lsof -p <pid>
me la da lista de archivos abiertos para ese proceso. ¿Cómo puedo obtener una lista de todos los archivos abiertos para las 30 instancias del proceso en una máquina FreeBSD?
Además, no quiero que se enumeren las bibliotecas compartidas. Si lo hago -d "^txt"
, no muestra otros archivos db que quiero que se muestren. ¿Hay alguna otra forma de grep los archivos .so?
FYI para el transeúnte Internet: quería resolver un problema similar - contando el número de archivos abiertos por proceso, específicamente Java. Lo hice así: 'pgrep java | xargs -I {} bash -c 'printf {}; lsof -p {} | wc -l'' –