witr — поиск источника процессов и портов

★ 22.2K

witr — открытый инструмент, который отвечает на вопрос «почему это вообще запущено»: по процессу, открытому порту, контейнеру или файлу он прослеживает цепочку до того, что их породило. Берут, когда порт занят, а чем — непонятно; когда на сервере крутится процесс, которого никто не признаёт своим; когда разбирают инцидент и нужно быстро понять, какой юнит, таймер или контейнер всё это поднял; когда переданную по наследству машину надо описать до того, как что-то на ней менять. Написан на Go, ставится одним статическим бинарником без зависимостей через install-скрипт, brew, apt, winget, conda, npm, AUR и другие пакетные менеджеры; работает в двух режимах — CLI с машиночитаемым JSON для скриптов и полноэкранный интерактивный TUI для разбора вручную; поддерживает Linux, macOS, FreeBSD и Windows, понимает Docker. От связки ps, lsof и systemctl отличается тем, что сам выстраивает цепочку причинности вместо того, чтобы собирать её из выводов трёх утилит. Подойдёт для диагностики живой системы; не подходит, когда процесс уже завершился — историю witr не восстанавливает.