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.
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.
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:
- Confirma el equipo, la ruta, la fuente del montaje y el mantenimiento pretendido.
- Identifica los procesos con ambas herramientas cuando sea práctico.
- Determina si cada proceso puede detenerse, salir del directorio o terminar su trabajo.
- Detenlo mediante su gestor de servicios o la interfaz de la aplicación cuando existan.
- 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
lsofpara obtener registros detallados de archivos abiertos.Utiliza
fuserpara 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