miércoles, 21 de enero de 2026

Cómo saber qué archivos usa un PID en Linux

En los sistemas tipo Unix, "todo es un archivo". Esto incluye no solo documentos de texto, sino también librerías (.so), sockets de red, tuberías (pipes) y dispositivos de hardware.

1. Usando el comando lsof (Recomendado)

El comando lsof es la herramienta más completa para esta tarea. Requiere privilegios de superusuario (sudo) para ver archivos de procesos que no te pertenecen.

Listar todo lo abierto por un PID

sudo lsof -p [PID]

Filtrar por tipo de archivo

Si solo quieres ver archivos regulares (documentos, logs) y no librerías del sistema:

sudo lsof -p [PID] | grep REG

Explicación de las columnas principales:

  • FD (File Descriptor): El identificador del archivo para el proceso (ej. cwd para el directorio actual, txt para el ejecutable, o números para archivos abiertos).

  • TYPE: REG (archivo regular), DIR (directorio), CHR (dispositivo de caracteres), IPv4/6 (conexiones de red).

  • NAME: La ruta absoluta del archivo o la dirección del socket.

2. Inspeccionando el sistema /proc (Sin herramientas externas)

El kernel de Linux expone información de los procesos en el directorio /proc. Es extremadamente útil si no tienes lsof instalado.

Ver los descriptores de archivo (fd)

Cada archivo abierto por el proceso tiene un enlace simbólico en este directorio:

ls -l /proc/[PID]/fd

Ver el mapa de memoria (Librerías y ejecutables)

Para ver qué librerías dinámicas (.so) tiene cargadas el proceso en memoria:

cat /proc/[PID]/maps

3. Usando fuser (Búsqueda inversa)

Si lo que quieres es saber qué proceso está usando un archivo o directorio específico en lugar de empezar por el PID:

# Ver quién usa un archivo concreto
fuser -v /ruta/al/archivo

# Ver quién usa un sistema de archivos o directorio
fuser -v /home/usuario/datos

Resumen de utilidad

Objetivo

Comando

Ver todo (Red, Librerías, Logs)

lsof -p [PID]

Ver solo archivos de datos

ls -l /proc/[PID]/fd

Ver qué librerías usa

cat /proc/[PID]/maps

Saber quién bloquea un archivo

fuser -v [archivo]

No hay comentarios:

Publicar un comentario