ProcHub v0.7.0 命令行工具上线,进程、配置与 WSL 都能在终端管理

ProcHub v0.7.0 让后台进程的管理从图形界面延伸到了命令行。

ProcHub 是一款跨平台的桌面进程管理工具,用 Wails + Go + Vue 3 写成,用来盯住那些跑在后台、只有出问题才被想起的进程。v0.7.0 给主程序加了一套命令行工具:进程启停、日志跟踪、配置修改、WSL 管理都能在终端里完成,也能接进脚本;同时重做了进程列表的展示方式,并修掉了两个在 Windows 上由来已久的问题。一款工具能写进脚本,才算真正融进了工作流。

进程多了也能一眼看清

以前进程一多,列表就变成一条长长的滚动条,想找到"哪个挂了"得从头翻到尾。新版改成了响应式多列网格,窄屏一列、中屏两列、宽屏三列;更重要的是按状态分组,运行中、失败、已停止各自成块,顶部还有一条带实时计数的筛选栏(全部 / 运行中 / 失败 / 已停止)。上面的截图就是新布局,4 个进程里 2 个运行中、1 个已停止、1 个失败,失败那张卡片直接把报错原因摆了出来。

进程一多,你不用再滚到底部数数,一眼就能看到失败的那几个聚在哪里。

一个可执行文件,两种入口

ProcHub 的命令行和主程序共用同一个可执行文件:不带参数启动图形界面,带上子命令就执行 CLI。它不会另起一份应用,而是读取启动时写入数据目录的 auth.json(端口 + 令牌),在 127.0.0.1 上带着令牌和已运行的实例通信,默认端口 53093(落在规范化的 53090 段里)。服务只绑定本机回环地址,令牌也保存在当前用户可读的文件里。

bash 复制代码
prochub process list                 # 列出全部进程
prochub process logs ID --follow     # 持续跟踪某个进程的日志
prochub config set theme dark        # 切换深色主题
prochub wsl status                   # 查看 WSL 运行状态
prochub wsl restart                  # 重启 WSL

对终端用户来说,这意味着可以把 ProcHub 接进脚本和 CI:日志能 --tail 200 抓最近若干行,也能 --follow 实时订阅。ProcHub 从此有了两个入口:图形界面点一下,命令行敲一行。

粘贴一段 .env 就能导入环境变量

新增和编辑进程时,环境变量支持"文本导入"了:直接粘贴一段标准的 .env 文本,一键导入。解析逻辑覆盖了日常写法,# 注释行和空行会被跳过,export 前缀会剥掉,单双引号包裹的值会去引号并按需还原 \n、\t 转义;同名键覆盖已有值,新键追加到末尾。以前一个个手敲键值对的活,现在粘贴一次就够了。

Windows 上两个老问题的根因修复

这次修的问题都找到了根因,不是打补丁绕过去。

一是"双击图标偶尔起了第二份进程然后卡死"。根子在 Wails 的 Windows 单实例锁:当首实例以管理员身份运行、或隐藏窗口还没创建好时,这个锁会直接放行新实例。两份实例共用同一个 WebView2 用户数据目录,第二份就卡在自旋消息循环里出不来了。现在的做法是在 wails.Run 之前加一道进程级守卫:先读 auth.json,如果发现已存在实例且它的 PID 仍然存活,就请那个实例把窗口显示出来,然后自身退出;只有确认没有存活实例,才继续启动。

二是"托盘图标跑一段时间就失灵"。原因是托盘消息循环跑在普通 goroutine 里,而 Windows 会把窗口消息投递到创建窗口的那个线程;goroutine 一旦被调度器迁移到别的系统线程,就取到了错误线程的消息队列。修复方式是在 Windows 分支给消息循环加上 runtime.LockOSThread(),把它钉在拥有窗口的线程上。

顺带还有一处不容易察觉的修复:Windows 下守护进程的控制台输出按系统代码页(简体中文是 GBK)编码,重定向到管道后成了乱码,现在统一解码为 UTF-8 再落盘。

历史功能巡礼

对于刚认识 ProcHub 的读者,这几个此前的功能也值得一看。

托盘交互与退出保护(v0.6.0):Windows 下单击托盘图标直接唤出主界面,右键才弹菜单;如果还有进程在跑,退出会被拦下并列出是哪几个进程没停,避免误关。

WSL 自动启动(v0.6.0):可以在开机自启的前提下顺带拉起 WSL,还能看到 WSL 是运行中、已停止还是未安装。

数据目录可定制 (v0.6.0):通过 PROCHUB_DATA_ROOT 环境变量或 client.json 指定数据目录,让正式使用和开发测试的数据完全隔离。

其他更新

  • 运行时诊断:渲染进程的错误先写本地系统日志再上报,启动/挂载阶段留标记,白屏时分得清"没加载"还是"挂载崩了"
  • Go 暴露方法统一 panic 兜底,崩溃不再被静默吞掉
  • WSL 管理补上 wsl stop,启停更完整
  • 设置页改为分组布局(外观 / 启动 / WSL / 通用),深色模式改由主题统一驱动
  • 单实例、托盘、二次启动等路径补齐系统日志,方便排查
  • 端口统一规范到 53090 段,默认 53093,减少与其他调试程序冲突

近期版本回顾

  • v0.6.0 --- 托盘交互优化、WSL 自动启动、数据目录配置增强
  • v0.5.0 --- App Store 构建支持、组件重构

写在最后

如果你手上也有一堆后台进程需要盯着,可以升级到 v0.7.0,在终端敲一条 prochub process logs ID --follow 试试。项目仓库在 github.com/modstart-li...。你平时最希望哪个操作能写进脚本?欢迎来评论区聊聊。把重复的操作交给脚本,省下的是每天的时间。

相关推荐
那年那棵树1 小时前
基于WebGis的人生如旅地图系统
前端·arcgis·vue·课程设计
XZ-0700011 小时前
week9-三元表达式
java·前端·python
叫我铁汁儿吧1 小时前
Redux的原理
前端
云和数据.ChenGuang1 小时前
name=“张三“ age=18 weight=100.3 print (name,age,weight)
java·服务器·前端
代码猎人1 小时前
前端怎么优化兼容性
前端
Nayana1 小时前
《Web 到 HarmonyOS》-- 进程、线程与通信:谁能通、怎么通
前端
叫我铁汁儿吧1 小时前
JS 中的this
前端
狂潮lister2 小时前
狂潮·元理论 | 第5篇:想为你的AI培养个性吗!哈哈哈……(6个测试,教你幻觉的正确玩法)
前端·人工智能
高晶2 小时前
2A3 单端甲类功放从零制作全攻略:电路设计、焊接调试到煲机维护一站式指南
前端·设计模式