Об этом проекте
witr — это единый статический бинарный файл для Linux, macOS, Windows и FreeBSD, который отвечает на один вопрос: почему это работает? Получив имя процесса, PID, порт, контейнер или открытый файл, он строит причинно-следственную цепочку супервизоров, служб, оболочек и контейнеров, ответственных за существование этого объекта прямо сейчас.
Основная идея: всё рассматривается как вопрос о процессе. Порты, службы, контейнеры и команды сводятся к PID, и как только PID определён, witr объясняет, что выполняется, как это было запущено, что поддерживает его работу и к какому контексту оно относится. Это отличается от таких инструментов, как ps, top, lsof, ss, systemctl или docker ps, которые показывают состояние и метаданные, но оставляют пользователю необходимость вручную сопоставлять выводы.
Режимы использования:
- Стандартный вывод показывает цель, процесс, пользователя, команду, время запуска, цепочку предков (например, systemd → pm2 → node), источник, рабочий каталог, git-репозиторий и сокеты.
- --short выводит только цепочку предков; --tree отображает предков в виде дерева, включая до 10 дочерних процессов.
- --json выдаёт машиночитаемые результаты; --env показывает переменные окружения; --verbose добавляет расширенную информацию о процессе; --warnings показывает только предупреждения.
- Позиционные аргументы рассматриваются как имена процессов или служб, по умолчанию используется сопоставление по подстроке, а --exact — для точных имён. Несколько совпадений перечисляются с PID и предложением повторно запустить с --pid.
- --pid, --port, --file и --container можно повторять и смешивать друг с другом и с именованными аргументами; результаты выводятся в указанном порядке, разделённые помеченными разделителями.
- --container выполняет поиск по Docker, Podman, nerdctl, K8s/crictl, Incus, LXC, LXD и jail-ам FreeBSD, сопоставляя имя контейнера, образ, команду и метки compose project/service.
Интерактивный TUI: запуск witr без аргументов или с -i открывает терминальную панель с четырьмя вкладками. Processes показывает живой сортируемый и фильтруемый список с боковой панелью предков. Ports перечисляет слушающие или все порты с владеющими процессами, переключается клавишей a. Containers агрегирует запущенные контейнеры по поддерживаемым средам выполнения с детальным представлением для монтирований, сетей и метаданных compose. Locks показывает общесистемные файловые блокировки (POSIX/FLOCK на Linux, на основе lsof на macOS/FreeBSD) и может объединять все интересные открытые файловые дескрипторы. TUI также поддерживает действия над процессами, такие как kill, terminate, pause, resume и renice на Unix, навигацию мышью, адаптивную светлую/тёмную тему и автообновление с адаптивным интервалом, начиная с 3 секунд.
Установка широкая: установочные скрипты для Unix и Windows, а также пакеты через APT, Homebrew, MacPorts, Conda, AUR, Winget, npm, FreeBSD Ports, Chocolatey, Scoop, AOSC OS, GNU Guix, Uniget, Aqua, Brioche и mise, с артефактами deb/rpm/apk и go install из исходников. Предоставляются автодополнения для Bash, Zsh, Fish и PowerShell, а также man-страница. Доступен браузерный симулированный учебник и песочница для ознакомления с рабочим процессом без установки.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.