Sobre o projeto
witr é um único binário estático para Linux, macOS, Windows e FreeBSD que responde a uma pergunta: por que isso está em execução? Dado um nome de processo, PID, porta, contêiner ou arquivo aberto, ele constrói a cadeia causal de supervisores, serviços, shells e contêineres responsáveis pela existência daquilo naquele momento.
Ideia central: tudo é tratado como uma questão de processo. Portas, serviços, contêineres e comandos são todos mapeados de volta para PIDs, e uma vez que um PID é identificado, o witr explica o que está em execução, como começou, o que o mantém em execução e a qual contexto pertence. Isso difere de ferramentas como ps, top, lsof, ss, systemctl ou docker ps, que expõem estado e metadados, mas deixam o usuário correlacionar as saídas manualmente.
Modos de uso:
- A saída padrão mostra alvo, processo, usuário, comando, hora de início, a cadeia de ancestralidade (por exemplo, systemd para pm2 para node), origem, diretório de trabalho, repositório git e sockets.
- --short imprime apenas a cadeia de ancestralidade; --tree renderiza a ancestralidade como uma árvore, incluindo até 10 processos filhos.
- --json emite resultados legíveis por máquina; --env mostra variáveis de ambiente; --verbose adiciona informações estendidas do processo; --warnings mostra apenas avisos.
- Argumentos posicionais são tratados como nomes de processos ou serviços, com correspondência por substring por padrão e --exact para nomes exatos. Múltiplas correspondências são listadas com PIDs e uma sugestão para executar novamente com --pid.
- --pid, --port, --file e --container são repetíveis e podem ser misturados entre si e com argumentos de nome; os resultados aparecem na ordem fornecida, separados por divisores rotulados.
- --container pesquisa em Docker, Podman, nerdctl, K8s/crictl, Incus, LXC, LXD e jails do FreeBSD, correspondendo ao nome do contêiner, imagem, comando e rótulos de projeto/serviço do compose.
TUI interativa: executar witr sem argumentos ou com -i abre um painel de terminal com quatro abas. Processes mostra uma lista ao vivo classificável e filtrável com um painel lateral de ancestralidade. Ports lista portas em escuta ou todas as portas com os processos proprietários, alternado com a. Containers agrega contêineres em execução entre os runtimes suportados com uma visão de detalhes para montagens, redes e metadados do compose. Locks mostra bloqueios de arquivos em todo o sistema (POSIX/FLOCK no Linux, derivados de lsof no macOS/FreeBSD) e pode mesclar todos os descritores de arquivos abertos interessantes. A TUI também suporta ações de processo como kill, terminate, pause, resume e renice no Unix, navegação por mouse, tema adaptativo claro/escuro e atualização automática em uma cadência adaptativa começando em 3 segundos.
A instalação é ampla: scripts de instalação para Unix e Windows, além de pacotes via APT, Homebrew, MacPorts, Conda, AUR, Winget, npm, FreeBSD Ports, Chocolatey, Scoop, AOSC OS, GNU Guix, Uniget, Aqua, Brioche e mise, com artefatos deb/rpm/apk e go install a partir do código-fonte. Completions de shell são fornecidas para Bash, Zsh, Fish e PowerShell, e uma página de manual está incluída. Um tutorial simulado baseado em navegador e um sandbox estão disponíveis para experimentar o fluxo de trabalho sem instalar.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.