Moby — открытый проект Docker для работы с контейнерами, включающий модульные компоненты для сборки, запуска и оркестрации контейнерных систем.
pranshuparmar/witr
CLI и TUI, которые прослеживают цепочку систем, запустивших процесс, занявших порт или контейнер либо открывших файл.
- Звёзды
- 22,720
- Форки
- 892
- Открытые issues
- 2
- Последний коммит
- вчера
Что это?
witr отвечает на вопрос «почему это запущено?» применительно к процессу, прослушиваемому порту, контейнеру или файлу, который открыт процессом. Такие инструменты, как ps, lsof, ss и docker ps, показывают, что запущено, но не объясняют, как это было запущено. witr проходит по цепочке родительских процессов и супервизоров (systemd, launchd, PM2, cron, SSH-сессии, tmux, среды выполнения контейнеров), чтобы показать, какие системы отвечают за процесс и в какой последовательности.
Если запустить witr с именем, --pid, --port, --file или --container, он выведет текстовый отчет с цепочкой предков, источником запуска процесса, рабочим каталогом, веткой git, сокетами и предупреждениями — например, о запуске от root или прослушивании публичного интерфейса. Вывод может быть кратким, древовидным, подробным или в формате JSON; для скриптов и CI предусмотрены документированные коды завершения. При запуске без цели открывается интерактивный TUI со вкладками процессов, портов, контейнеров и блокировок файлов, а также действиями signal и renice в Unix.
Проект написан на Go и распространяется в виде одного бинарного файла для Linux, macOS, Windows и FreeBSD; доступны несколько вариантов установки через менеджеры пакетов.
Ключевые возможности
- 01Прослеживает цепочку родительских процессов и супервизоров (systemd, launchd, PM2, cron, SSH), связанных с процессом.
- 02Находит цель по имени процесса, PID, прослушиваемому порту, открытому файлу или контейнеру.
- 03Поддерживает Docker, Podman, nerdctl, Kubernetes/crictl, Incus, LXC, LXD и jail в FreeBSD.
- 04Предоставляет интерактивный TUI со вкладками процессов, портов, контейнеров и блокировок файлов.
- 05Выводит отчеты для чтения, краткое или древовидное представление либо JSON с документированными кодами завершения.
Сценарии использования
- Выяснить, что занимает порт, когда dev-сервер не запускается с ошибкой «address already in use».
- Разобраться с неизвестным или зависшим процессом во время инцидента на Linux-сервере.
- Проверить, какому сервису Compose или контейнеру принадлежит занятый порт.
- Позволить AI-агентам для написания кода выявлять конфликты портов и процессов с помощью вывода в формате JSON.
Быстрый старт
- 1
Установить с помощью скрипта установки для Unix
curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash - 2
Или установить через Homebrew
brew install witr - 3
Или установить из исходного кода Go
go install github.com/pranshuparmar/witr/cmd/witr@latest
Что важно знать
- Способы установки различаются в зависимости от платформы, а обновления в пакетах сообщества могут выходить позже релизов на GitHub.
Темы
Частые вопросы
- Что такое witr?
- CLI и TUI, которые прослеживают цепочку систем, запустивших процесс, занявших порт или контейнер либо открывших файл. witr отвечает на вопрос «почему это запущено?» применительно к процессу, прослушиваемому порту, контейнеру или файлу, который открыт процессом. Такие инструменты, как ps, lsof, ss и docker ps, показывают, что запущено, но не объясняют, как это было запущено. witr проходит по цепочке родительских процессов и супервизоров (systemd, launchd, PM2, cron, SSH-сессии, tmux, среды выполнения контейнеров), чтобы показать, какие системы отвечают за процесс и в какой последовательности.
- witr можно использовать бесплатно? Какая у него лицензия?
- witr распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- witr всё ещё поддерживается?
- Активно поддерживается. Последний коммит в witr — 19 окт. 2026 г..
- Для чего можно использовать witr?
- Выяснить, что занимает порт, когда dev-сервер не запускается с ошибкой «address already in use». Разобраться с неизвестным или зависшим процессом во время инцидента на Linux-сервере. Проверить, какому сервису Compose или контейнеру принадлежит занятый порт. Позволить AI-агентам для написания кода выявлять конфликты портов и процессов с помощью вывода в формате JSON.
- Как установить witr?
- Установить с помощью скрипта установки для Unix: curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash Или установить через Homebrew: brew install witr Или установить из исходного кода Go: go install github.com/pranshuparmar/witr/cmd/witr@latest
- Где скачать witr?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pranshuparmar/witr
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Терминальный интерфейс (TUI) для просмотра и управления Docker-контейнерами: статистика в реальном времени, логи и доступ через exec.
Кроссплатформенный системный монитор для терминала и веб-интерфейса: CPU, память, диски, сеть, процессы и контейнеры; есть REST API и экспорт данных.
Мини-Heroku на Docker для самостоятельного хостинга: разворачивайте и управляйте веб-приложениями на своём сервере с помощью git push.
Терминальная панель на Textual для создания, редактирования, приостановки и мониторинга cron-задач на локальных машинах и удалённых серверах по SSH.
Trivy — сканер безопасности с открытым исходным кодом, который выявляет уязвимости, ошибки конфигурации, секреты и данные SBOM в контейнерах, файловых системах, Git-репозиториях, образах VM и Kubernetes.