witr(Why Is This Running?)进程诊断工具详解

witr(Why Is This Running?)进程诊断工具详解

来源:群聊分享(菩提树)
整理时间:2026-05-17
标签:#witr #进程诊断 #系统运维 #安全审计 #命令行工具 #Go


一、项目概览

项目 信息
名称 witr(Why Is This Running?)
定位 进程溯源诊断工具
解决的问题 “进程为什么在运行”,而非仅”正在运行什么”
语言 Go
协议 Apache-2.0
仓库 github.com/pranshuparmar/witr

二、核心定位对比

工具类型 能回答 不能回答
ps/top/lsof 正在运行什么 为什么运行
witr 进程为什么运行

witr 核心价值: 从目标进程 → 系统初始化进程(init/wininit),一键理清启动来源、父子关系、依赖服务、风险点。


三、核心功能

3.1 多维度定位目标

定位方式 示例
按进程名 witr nginx
按 PID witr -p 1234
按监听端口 witr :80
按文件路径 witr -f /usr/bin/xxx

3.2 进程详情全景展示

维度 内容
基础信息 用户、启动时间、工作目录、完整命令行
网络信息 IPv4/IPv6 监听地址、接口、端口
服务信息 Windows 服务名、systemd 单元、supervisor/pm2 管理
环境信息 环境变量(–env)、容器标识(Docker/K8s)

3.3 递归溯源(最强功能)

目标进程 → 父进程 → 祖进程 → 系统初始化进程
溯源标注
systemd、cron、shell、Docker、pm2、Windows 服务等

3.4 安全风险自动告警

风险类型 说明
⚠️ 监听在公网/高危接口
⚠️ 进程名与服务名不匹配(可疑)
⚠️ 无合法父进程/异常父进程
⚠️ 容器逃逸/权限异常

3.5 交互模式(TUI)

功能 说明
实时进程列表 排序/过滤/搜索
端口视图 一键查看端口归属进程
进程树 展开/折叠父子关系
快捷操作 kill/terminate/暂停/恢复/renice
鼠标支持 点击排序、切换面板

3.6 输出格式

格式 参数 适用场景
普通文本 默认 易读
JSON --json 程序解析
树形结构 --tree 直观展示
无颜色 --no-color 日志场景

四、常用命令速查

4.1 基础查询

# 按进程名查询(模糊匹配)
witr nginx

# 按 PID 查询
witr -p 1234

# 按端口查询
witr :80

# 精确匹配进程名
witr -x "nginx"

4.2 高级用法

# 显示环境变量
witr --env mysql

# JSON 输出(程序解析)
witr --json sshd

# 树形结构(直观)
witr --tree nginx

# 无颜色(日志场景)
witr --no-color nginx

4.3 交互模式

# 启动 TUI 交互界面
witr -i

五、适用场景

场景 说明
系统排障 进程莫名启动、端口被占用、服务异常
安全审计 恶意进程溯源、可疑服务排查、端口风险检查
容器/微服务 Docker 进程溯源、K8s 容器内进程分析
日常运维 理清复杂依赖、快速定位服务启动来源

六、项目优势

优势 说明
轻量 单静态二进制,无依赖,直接运行
跨平台 Linux/macOS/Windows/FreeBSD 一致体验
非侵入 只读分析,不修改系统状态
易集成 JSON 输出,可嵌入监控/自动化脚本

七、速查表

# ===== 基础查询 =====
witr nginx                      # 按进程名(模糊)
witr -p 1234                   # 按 PID
witr :80                       # 按端口
witr -x "nginx"                # 精确匹配

# ===== 详细信息 =====
witr --env mysql               # 显示环境变量

# ===== 输出格式 =====
witr --json sshd               # JSON 输出
witr --tree nginx              # 树形结构
witr --no-color nginx          # 无颜色

# ===== 交互模式 =====
witr -i                        # TUI 交互界面

八、总结

witr = 进程溯源 + 安全告警 + 交互诊断,一站式解决”这个进程为什么在跑”的问题。

适用人群:
- 运维工程师
- 安全审计人员
- 开发者在排查进程问题时


本文由 AI 辅助整理,供技术学习参考。