🔍 witr:为什么这个进程在跑?终端进程因果溯源神器

排查线上故障最头疼的场景:SSH 登进机器,lsof 或 netstat 抓出端口被占、CPU 飚高,但除了孤零零的 PID,你完全不知道它到底是谁拉起来的、为什么还赖在后台。

传统工具(ps / top / lsof / docker ps)只陈述“状态”,把“因果推导”丢给人脑。最近狂揽 2.2 万 Star 的开源利器 witr(Why is this running?),核心就是把多层溯源压成一行命令。

⚡️ 核心硬核特性:
• 全链路因果溯源:以 PID 为核心向上逆向穿透父进程链,精准识别启动源(Systemd、PM2、Docker/K8s/LXC、Launchd、SSH 会话或 Cron)。
• 业务上下文自动绑定:不仅能抓工作目录,还会向上递归查找 .git,直接输出运行代码所在的 Git 仓库名与分支,多版本灰度时秒级确认。
• 环境反常告警:内置轻量规则,实时提示非 Root 危险能力(CAP_SYS_ADMIN)、动态库注入(LD_PRELOAD / DYLD_*)、被删二进制文件及长时间挂死。
• 单静态二进制全平台 + TUI:Go 原生构建无外部依赖(跨 Linux/macOS/Win/FreeBSD),内置 4 选项卡 TUI 仪表盘与 --json / --short 脚本管道。

💡 Agili 犀利点评:
它不是替代 Datadog 的 APM 监控,而是终端排障的第一现场探针。唯一的客观边界是:孤儿进程被 nohup 或双 fork 后会被 systemd 收养(PPID 变为 1),纯静态追溯可能遗漏初始会话;但对日常运维排障,它能替你省下 90% 查表与拼管道的时间。

🔗 GitHub:https://github.com/pranshuparmar/witr