Sobre el proyecto
witr es un único binario estático para Linux, macOS, Windows y FreeBSD que responde una pregunta: ¿por qué se está ejecutando esto? Dado un nombre de proceso, PID, puerto, contenedor o archivo abierto, construye la cadena causal de supervisores, servicios, shells y contenedores responsables de que ese elemento exista en este momento.
Idea central: todo se trata como una cuestión de procesos. Los puertos, servicios, contenedores y comandos se asignan a PIDs, y una vez identificado un PID, witr explica qué se está ejecutando, cómo se inició, qué lo mantiene en ejecución y a qué contexto pertenece. Esto difiere de herramientas como ps, top, lsof, ss, systemctl o docker ps, que exponen estado y metadatos pero dejan al usuario correlacionar las salidas manualmente.
Modos de uso:
- La salida estándar muestra el objetivo, proceso, usuario, comando, hora de inicio, la cadena de ascendencia (por ejemplo systemd a pm2 a node), origen, directorio de trabajo, repositorio git y sockets.
- --short imprime solo la cadena de ascendencia; --tree representa la ascendencia como un árbol que incluye hasta 10 procesos hijos.
- --json emite resultados legibles por máquina; --env muestra variables de entorno; --verbose añade información extendida del proceso; --warnings muestra solo advertencias.
- Los argumentos posicionales se tratan como nombres de procesos o servicios, con coincidencia por subcadena de forma predeterminada y --exact para nombres exactos. Las coincidencias múltiples se listan con PIDs y una sugerencia de volver a ejecutar con --pid.
- --pid, --port, --file y --container son repetibles y pueden combinarse entre sí y con argumentos de nombre; los resultados aparecen en el orden indicado, separados por divisores etiquetados.
- --container busca en Docker, Podman, nerdctl, K8s/crictl, Incus, LXC, LXD y FreeBSD jails, coincidiendo con el nombre del contenedor, imagen, comando y etiquetas de proyecto/servicio de compose.
TUI interactiva: ejecutar witr sin argumentos o con -i abre un panel de terminal con cuatro pestañas. Processes muestra una lista en vivo ordenable y filtrable con un panel lateral de ascendencia. Ports lista puertos en escucha o todos los puertos con sus procesos propietarios, alternable con a. Containers agrega contenedores en ejecución de los runtimes compatibles con una vista de detalle para montajes, redes y metadatos de compose. Locks muestra bloqueos de archivos de todo el sistema (POSIX/FLOCK en Linux, derivados de lsof en macOS/FreeBSD) y puede fusionar todos los descriptores de archivo abiertos interesantes. La TUI también admite acciones sobre procesos como kill, terminate, pause, resume y renice en Unix, navegación con ratón, tematización adaptativa clara/oscura y actualización automática con una cadencia adaptativa que comienza en 3 segundos.
La instalación es amplia: scripts de instalación para Unix y Windows, además de paquetes mediante APT, Homebrew, MacPorts, Conda, AUR, Winget, npm, FreeBSD Ports, Chocolatey, Scoop, AOSC OS, GNU Guix, Uniget, Aqua, Brioche y mise, con artefactos deb/rpm/apk y go install desde el código fuente. Se proporcionan completados de shell para Bash, Zsh, Fish y PowerShell, y se incluye una página de manual. Hay disponible un tutorial simulado basado en navegador y un sandbox para probar el flujo de trabajo sin instalar.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.