应用介绍
部署脚本报 EADDRINUSE,8000 端口被占了。接下来是一套熟练的体力活:`lsof -i :8000` 拿到 PID,`ps -ef` 看命令行,往上翻父进程,发现是个 node,再去查它归哪个 systemd 单元管,最后才想起来中间还隔着一层 PM2。四五个工具来回拼,就为了回答一个问题:这东西到底是谁起的。witr 把这条链子一次性打出来——`witr --port 8000`,直接给你 systemd → PM2 → node,连每一环的 PID、启动时间、工作目录和对应的 unit 文件都标好。
它的思路是"一切都是进程问题":端口、服务、容器、文件锁最终都能落到 PID 上,拿到 PID 就往上回溯出因果链。查法很随意,直接写进程名、`--port` 给端口、`--pid` 给号、`--file` 给被占用的文件、`--container` 给容器,几个还能混着用。输出有四种形态:完整信息、`--short` 的一行链路、`--tree` 的树状图,以及给脚本用的 `--json`。
不带参数直接敲 `witr` 会进交互式 TUI,四个标签页分别是进程、端口、容器和文件锁,列表能排序能过滤,右侧面板实时显示选中进程的祖先树;容器那页把 Docker、Podman、containerd、K8s、LXC、LXD 和 FreeBSD jail 里跑的东西合并成一张表。选中进程可以直接发信号或调 nice 值,支持鼠标操作,配色跟着终端明暗自动切换。
整个程序是一个 Go 编译的静态单文件,Linux、macOS、Windows、FreeBSD 都有,Homebrew、apt、conda、AUR、winget、MacPorts 都收录了。官网还挂了个浏览器沙盒,不装就能在模拟的 Linux 机器上跟着教程排查几个真实场景。Apache-2.0 开源。
因果链输出:一条命令打印出从 init 到目标进程的完整启动链,标注每一环的 PID、启动方式和来源。
多种查询目标:按进程名、PID、端口、被占用的文件或容器查询,参数可重复可混用,一次问多个目标。
交互式 TUI:进程、端口、容器、文件锁四个标签页,列表实时刷新,侧栏同步显示选中项的祖先树。
容器全覆盖:Docker、Podman、nerdctl、K8s/crictl、Incus、LXC、LXD 和 FreeBSD jail 的容器汇总在一张表里。
进程详情:展开看子进程、环境变量、工作目录、打开的套接字和文件上下文。
进程操作:TUI 里直接发送 Kill、Terminate、Pause、Resume 信号或调整 nice 值(Unix)。
文件锁视图:列出系统范围的文件锁,按一下 a 切换成"所有打开的文件"模式。
多种输出格式:完整输出、一行链路、树状图,以及可直接喂给脚本的 JSON。
单文件静态二进制:Go 编译,无运行时依赖,Linux、macOS、Windows、FreeBSD 全平台,各大包管理器已收录。
浏览器沙盒:官网提供模拟 Linux 环境的教程与自由练习,不安装也能先试。
它的思路是"一切都是进程问题":端口、服务、容器、文件锁最终都能落到 PID 上,拿到 PID 就往上回溯出因果链。查法很随意,直接写进程名、`--port` 给端口、`--pid` 给号、`--file` 给被占用的文件、`--container` 给容器,几个还能混着用。输出有四种形态:完整信息、`--short` 的一行链路、`--tree` 的树状图,以及给脚本用的 `--json`。
不带参数直接敲 `witr` 会进交互式 TUI,四个标签页分别是进程、端口、容器和文件锁,列表能排序能过滤,右侧面板实时显示选中进程的祖先树;容器那页把 Docker、Podman、containerd、K8s、LXC、LXD 和 FreeBSD jail 里跑的东西合并成一张表。选中进程可以直接发信号或调 nice 值,支持鼠标操作,配色跟着终端明暗自动切换。
整个程序是一个 Go 编译的静态单文件,Linux、macOS、Windows、FreeBSD 都有,Homebrew、apt、conda、AUR、winget、MacPorts 都收录了。官网还挂了个浏览器沙盒,不装就能在模拟的 Linux 机器上跟着教程排查几个真实场景。Apache-2.0 开源。
软件功能
因果链输出:一条命令打印出从 init 到目标进程的完整启动链,标注每一环的 PID、启动方式和来源。
多种查询目标:按进程名、PID、端口、被占用的文件或容器查询,参数可重复可混用,一次问多个目标。
交互式 TUI:进程、端口、容器、文件锁四个标签页,列表实时刷新,侧栏同步显示选中项的祖先树。
容器全覆盖:Docker、Podman、nerdctl、K8s/crictl、Incus、LXC、LXD 和 FreeBSD jail 的容器汇总在一张表里。
进程详情:展开看子进程、环境变量、工作目录、打开的套接字和文件上下文。
进程操作:TUI 里直接发送 Kill、Terminate、Pause、Resume 信号或调整 nice 值(Unix)。
文件锁视图:列出系统范围的文件锁,按一下 a 切换成"所有打开的文件"模式。
多种输出格式:完整输出、一行链路、树状图,以及可直接喂给脚本的 JSON。
单文件静态二进制:Go 编译,无运行时依赖,Linux、macOS、Windows、FreeBSD 全平台,各大包管理器已收录。
浏览器沙盒:官网提供模拟 Linux 环境的教程与自由练习,不安装也能先试。


