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

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

OSChina资讯 2026-10-18 10:06 3 阅读 查看原文

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 段里)。服务只绑定本机回环地址,令牌也保存在当前用户可读的文件里。

prochub process list                 # 列出全部进程
prochub process logs ID --follow     # 持续跟踪某个进程的日志
prochub config set theme dark        # 切换深色主题
prochub wsl status                   # 查看 WSL 运行状态
prochub wsl restart                  # 重启 WSL
  • 日志能 抓最近若干行,也能 实时订阅。

    进程日志弹窗

粘贴一段 .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-lib/prochub。你平时最希望哪个操作能写进脚本?欢迎来评论区聊聊。把重复的操作交给脚本,省下的是每天的时间。