- 新增 webhttp 包: Router 最小路由接口(5 动词) + ServeMuxRouter 适配器 + WriteJSON 统一响应 - file/shell/process 三个被控能力包改以标准库 handler 形态注册, 不再绑死 gin - 由此 gin 及其连带重依赖(quic-go/http3、mongo bson、ugorji codec、goccy、validator)退出被控端二进制 - shell: recDir 死参数修复——原实现硬编码 ./rec, 传入的录制目录不生效; 现录制写入与记录列表同源 - shell: 终端创建失败由 panic 改为记日志后关连接(net/http 按连接兜底恢复, 不再依赖框架 Recovery) - file: 上传落盘不再沿用 SaveUploadedFile 的 MkdirAll+Chmod(Windows 盘根 Chmod 报参数不正确), 保留 MkdirAll 去掉 Chmod - 消费方: remote-client 纯 ServeMux 承载; remote-service 保留 gin 栈经 gin.WrapH 桥接(middle 链照常生效) 破坏性变更: RegisterRouters* 形参 gin.RouterGroup → webhttp.Router, 升级 tag v0.5.0
process
远程进程管理(被控 HTTP 能力):进程列表 / 结束进程。gopsutil 跨平台实现, 与 file/shell 同为被控 HTTP 能力——BS 与客户机被控端共用,经 zonat 隧道 + web-gateway 反代出网(typ=process,页面 www/process.html)。
路由
import "git.zeroonesoft.cn/golib/remote-core/process"
process.RegisterRoutersProcess(r *gin.RouterGroup)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /process/list |
全量进程列表(ProcItem:pid/名称/用户/CPU/内存/启动时间/可执行路径/命令行),按内存占用降序 |
| POST | /process/kill |
结束进程,入参 {pid, name?} |
注意
kill带name时做防误杀校验:实际进程名与传入不符则拒绝(防 pid 复用)。- Windows 上 gopsutil 权限不足时自动回退
taskkill /F /T(连子进程树强杀)。