lsof y fuser
100%

Utilización de Procesos · Lección 2

lsof y fuser

Aprende a identificar los procesos que utilizan archivos, directorios, puntos de montaje y sockets de red.

Un sistema de archivos puede seguir ocupado porque un proceso mantiene un archivo abierto, asigna un archivo en memoria o utiliza un directorio como directorio de trabajo actual. lsof y fuser ayudan a identificar esas relaciones. Primero investiga; detener procesos es una decisión independiente con consecuencias para el funcionamiento.

Mostrar archivos abiertos con lsof

lsof significa «list open files», es decir, mostrar archivos abiertos. Consulta una ruta para ver los registros de archivos abiertos coincidentes:

$ sudo lsof -- /mnt/usb

Para recorrer todo un árbol de directorios del mismo sistema de archivos, las implementaciones suelen admitir +D, pero los recorridos recursivos pueden ser costosos:

$ sudo lsof +D /mnt/usb

Entre las columnas útiles se encuentran COMMAND, PID, USER, el descriptor de archivo (FD), el tipo, el dispositivo y NAME. Un registro cuyo FD sea cwd indica que el proceso utiliza el directorio como directorio de trabajo actual. La salida sin privilegios puede estar incompleta para procesos de otros usuarios.

¿Qué indica cwd en la columna FD?

Identificar usuarios con fuser

fuser comunica los identificadores de los procesos que utilizan un archivo o sistema de archivos indicado. La salida detallada añade usuarios, tipos de acceso y nombres de órdenes:

$ sudo fuser -v /mnt/usb

Para tratar el argumento como un sistema de archivos montado y encontrar los procesos que acceden a archivos situados dentro de él, utiliza la opción de montaje compatible con fuser de procps:

$ sudo fuser -vm /mnt/usb

Comprueba con herramientas como findmnt --target /mnt/usb que la ruta sea el punto de montaje pretendido. Los montajes enlazados, los espacios de nombres, los permisos y las condiciones de carrera pueden afectar a lo que revela una sola consulta.

¿Por qué utilizar fuser -v en vez de fuser sin opciones durante una investigación?

Gestionar un sistema de archivos ocupado

Sigue una secuencia deliberada en vez de matar de inmediato todos los PID coincidentes:

  1. Confirma el equipo, la ruta, la fuente del montaje y el mantenimiento pretendido.
  2. Identifica los procesos con ambas herramientas cuando sea práctico.
  3. Determina si cada proceso puede detenerse, salir del directorio o terminar su trabajo.
  4. Detenlo mediante su gestor de servicios o la interfaz de la aplicación cuando existan.
  5. Vuelve a consultar y después desmonta y verifica el resultado.

fuser -k envía una señal a los procesos coincidentes. En las implementaciones habituales de procps, la señal predeterminada es SIGKILL, por lo que no permite un cierre ordenado. Si resulta necesaria una terminación aprobada explícitamente, elige una señal apropiada, verifica el PID y el propietario, y comprende que el conjunto de procesos puede cambiar entre la inspección y la acción.

¿Por qué fuser -k /mnt/usb es un mal primer paso para resolver un problema?

Elegir la herramienta

Utiliza lsof cuando necesites registros detallados de archivos abiertos, descriptores o información de sockets. Utiliza fuser para una vista orientada a rutas de los PID y tipos de acceso coincidentes. Ningún resultado por sí solo indica si es seguro terminar un proceso.

Para sockets de red, utiliza un espacio de nombres de protocolo explícito con fuser o una herramienta centrada en sockets como ss:

$ sudo fuser -v 22/tcp
$ sudo ss -lntp

¿Qué herramienta resulta adecuada para obtener una lista detallada de descriptores de archivos abiertos y sus procesos propietarios?

Lección completada

Has completado lsof y fuser

Ahora puedes investigar el uso de archivos y sistemas de archivos sin tratar la terminación como respuesta predeterminada.

  • Utiliza lsof para obtener registros detallados de archivos abiertos.

  • Utiliza fuser para obtener información de PID y acceso orientada a rutas.

  • Confirma el montaje y ten en cuenta los permisos y las condiciones de carrera.

  • Coordina una detención ordenada antes de plantearte una señal.

  • Vuelve a consultar y verifica el resultado del desmontaje o del servicio.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Utilización de Procesos