Articulo de referencia

lsof

[ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ lsof FAQ, 1.9 Is there an lsof license?]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}} "},"website":{"wt":""},"r...

lsof es un comando que significa "listar archivos abiertos" y se utiliza en muchos sistemas tipo Unix para mostrar una lista de todos los archivos abiertos y los procesos que los abrieron. Esta utilidad de código abierto fue desarrollada y mantenida por Victor A. Abell, exdirector asociado del Centro de Computación de la Universidad de Purdue . Funciona y es compatible con varias distribuciones de Unix. [ 4 ]

Un reemplazo para Linux, lsfd, está incluido en util-linux . [ 5 ]

Historia

En 1985, Cliff Spencer publicó el ofilescomando. Su página de manual dice: "ofiles – quien tiene un archivo abierto [...] muestra el propietario y el ID de cualquier proceso que acceda a un dispositivo especificado". Spencer lo compiló para 4.2BSD y ULTRIX . [ 6 ] Además, en el grupo de noticias net.unix-wizards, comenta además: [ 7 ]

Ante tanta charla sobre el desmontaje de sistemas de archivos activos, he publicado mi programa para indicar quién está utilizando un sistema de archivos en particular, "ofiles", en net.sources.

En 1988, el comando fstat("file status") aparece como parte de la versión 4.3BSD-Tahoe . Su página man dice: [ 8 ]

fstat identifica los archivos abiertos. Un archivo se considera abierto si un proceso lo tiene abierto, si es el directorio de trabajo de un proceso o si es un archivo de texto plano activo. Si no se especifica ninguna opción, fstat informa sobre todos los archivos abiertos.

En 1989, en comp.sources.unix, Vic Abell publicó adaptaciones de los comandos ofiles y fstat de 4.3BSD-Tahoe a " DYNIX 3.0.1[24] para Sequent Symmetry and Balance, SunOS 4.0 y ULTRIX 2.2". [ 9 ] [ 10 ] Varias personas habían desarrollado y adaptado ofiles a lo largo de los años. Abell comparó los comandos de la siguiente manera: [ 10 ]

Fstat es similar al programa ofiles que presenté recientemente. Al igual que ofiles, fstat identifica los archivos abiertos. Su funcionamiento difiere ligeramente del de ofiles: ofiles parte de un nombre de archivo y examina las estructuras de procesos y usuarios para identificarlo; fstat lee todas las estructuras de procesos y usuarios, mostrando información de todos los archivos y, opcionalmente, aplicando algunos filtros a la salida (incluido un filtro por nombre de archivo).

En combinación con netstat -aA y grep, fstat identificará el proceso asociado a una conexión de red, al igual que ofiles.

En 1991, Vic Abell publica lsof versión 1.0 en comp.sources.unix. Él señala: [ 1 ]

Lsof (por LiSt Open Files) lista los archivos abiertos por los procesos en determinados sistemas Unix. Es mi respuesta a quienes me preguntan con frecuencia cuándo voy a habilitar fstat (comp.sources.unix volumen 18, número 107) u ofiles (volumen 18, número 57) para SunOS 4.1.1 o versiones similares.

Lsof es un rediseño completo de la serie fstat/ofiles, basado en el modelo vnode de SunOS. Por lo tanto, se ha probado en AIX 3.1.[357], HP-UX [78].x, NeXTStep 2.[01], Sequent Dynix 3.0.12 y 3.1.2, y SunOS 4.1 y 4.1.1. Utilizando los métodos de acceso al kernel disponibles, como nlist() y kvm_read(), lsof lee las entradas de la tabla de procesos, las áreas de usuario y los punteros de archivo para llegar a las estructuras subyacentes que describen los archivos abiertos por los procesos.

En 2018, Vic Abbell publica lsof versión 4.92. Ese mismo año, inicia la transferencia de responsabilidad. Escribe: [ 11 ]

Este año cumpliré 80 años y creo que es hora de que finalice mi trabajo en las versiones de revisión general de lsof.

El código lsof se coloca en GitHub y se transfiere el mantenimiento. [ 11 ] [ 12 ]

Ejemplos

Los archivos abiertos en el sistema incluyen archivos de disco, tuberías con nombre , sockets de red y dispositivos abiertos por todos los procesos. Este comando se utiliza, por ejemplo, cuando no se puede desmontar un disco porque hay archivos (no especificados) en uso. Se puede consultar la lista de archivos abiertos (filtrada si es necesario) para identificar el proceso que los está utilizando.

# lsof /var COMANDO PID USUARIO FD TIPO DISPOSITIVO TAMAÑO/APAGADO NODO NOMBRE syslogd 350 root 5w VREG 222,5 0 440818 /var/adm/messages syslogd 350 root 6w VREG 222,5 339098 6248 /var/log/syslog cron 353 root cwd VDIR 222,5 512 254550 /var -- atjobs

Para ver el puerto asociado a un demonio:

# lsof -i -n -P | grep sendmail sendmail 31649 root 4u IPv4 521738 TCP *:25 (LISTEN)

De lo anterior se puede ver que "sendmail" está escuchando en su puerto estándar de "25".

-i
Enumera los sockets IP.
-norte
No resuelve nombres de host (sin DNS).
-PAG
No resuelva los nombres de los puertos (en su lugar, muestre el número de puerto).

También se pueden listar los sockets Unix usando lsof -U.

Salida Lsof

La salida de lsof describe:

  • el número de identificación del proceso (PID) que ha abierto el archivo;
  • el número de identificación del grupo de procesos (PGID) del proceso (opcional);
  • el número de identificación del proceso padre (PPID) (opcional);
  • el comando que está ejecutando el proceso;
  • el propietario del proceso;
  • para todos los archivos utilizados por el proceso, incluido el archivo de texto en ejecución y las bibliotecas compartidas que está utilizando:
    • el número descriptor del archivo, si corresponde;
    • el modo de acceso del archivo;
    • el estado de bloqueo del archivo;
    • los números de dispositivo del archivo;
    • el número de inodo del archivo;
    • el tamaño o desplazamiento del archivo;
    • el nombre del sistema de archivos que contiene el archivo;
    • cualquier componente disponible de la ruta del archivo;
    • los nombres de los componentes del flujo del archivo;
    • las direcciones de red local y remota del archivo;
    • el estado de la red TLI (normalmente UDP) del archivo;
    • el estado TCP, la longitud de la cola de lectura y la longitud de la cola de escritura del archivo;
    • las longitudes de lectura y escritura de la ventana TCP del archivo (solo Solaris); y
    • otros valores específicos del archivo o del dialecto.

Para obtener una lista completa de opciones, consulte la página del manual de Linux Lsof(8). [ 13 ]

Véase también

Referencias

  1. 1 2 "v25i002: lsof - un sucesor de fstat y ofiles" . comp.sources.unix. Archivado del original el 10-01-2023 . Recuperado el 13-04-2023 .
  2. lsof-org. "Versión lsof 4.99.7 · lsof-org/lsof" . Consultado el 17 de junio de 2026 .
  3. Preguntas frecuentes sobre lsof, 1.9 ¿Existe una licencia para lsof?
  4. W. Richard Stevens; Bill Fenner; Andrew M. Rudoff (2003), Programación de redes Unix: la API de redes Sockets , Addison-Wesley Professional, ISBN 978-0-13-141155-5
  5. "RFC: lsfd, un reemplazo completamente nuevo específico para Linux para lsof #1418" . Archivado del original el 19 de febrero de 2023. Recuperado el 19 de febrero de 2023 .
  6. Spencer, Cliff. "ofiles(8)" . groups.google.com . net.sources. Archivado del original el 13 de abril de 2023. Recuperado el 13 de abril de 2023 .
  7. Spencer, Cliff. ""ofiles" publicado en net.sources" . groups.google.com . net.unix-wizards. Archivado del original el 13-04-2023 . Recuperado el 13-04-2023 .
  8. ^ "FSTAT(8)" . www.tuhs.org . 4.3BSD-Tahoe.
  9. "v18i057: Archivos REVISADOS, no necesita la fuente de Sun" . comp.sources.unix.
  10. 1 2 "v18i107: Mostrar el estado de todos los archivos abiertos" . comp.sources.unix.
  11. 1 2 "lsof se ha trasladado a GitHub y tiene una nueva versión · Problema n.º 39572 · Homebrew/homebrew-core" . GitHub . Archivado del original el 13 de abril de 2023. Consultado el 13 de abril de 2023 .
  12. "lsof maintain.md" . GitHub . lsof-org. 10 de abril de 2023. Archivado del original el 13 de abril de 2023. Recuperado el 13 de abril de 2023 .
  13. "lsof" . Consultado el 16 de julio de 2020 .
  • Sitio antiguo
  • Lista de correo lsof-l
  • espejo de fuentes heredadas
  • lsof(8) Manual de administración de Linux y comandos privilegiados 
  • lsof(8) Manual del administrador del sistema Darwin y macOS 
  • Usando lsof
  • Preguntas frecuentes de Lsof
  • El script PCP de Sam Nelson , una alternativa a "lsof -i" para Solaris.
  • Glsof consta de dos utilidades separadas (Consultas y Monitor de archivos) basadas en lsof.
  • Sloth es una interfaz gráfica de macOS para lsof.
  • Página de manual de LSOF