dsh-auto-exit

by xiaxingtianxia2-glitch

1 开发与运行时github收录于 08-21

关闭 DSH Web UI 后自动退出 CLI 进程(等效 Ctrl+C),支持可配置宽限期与试运行模式。

Exits the dsh CLI process automatically when the Web UI closes, with a configurable grace period and dry-run mode.

安装

dsh plugin --profile web add github:xiaxingtianxia2-glitch/dsh-auto-exit

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English | 中文

这是什么

dsh --profile web 会在终端里长驻一个进程,通过浏览器 Web UI 使用。本插件让 「关掉 Web UI 页面」就等于「退出进程」:所有页面关闭后,CLI 进程自动以等效 Ctrl+C 的方式退出(exit code 130),不用再回终端手动操作。

工作原理

  1. 检测:浏览器页面与 CLI 进程之间保持 WebSocket 连接,页面关闭即断开。
  2. 宽限:连接全部断开后等待 15 秒(可配置)再退出——页面刷新、短暂重开 不会误退;期间重开页面即取消退出。
  3. 退出:宽限期满后调用与 Ctrl+C 相同的优雅退出通道,进程以 exit code 130 结束,数据与状态照常落盘。

安装

dsh plugin --profile web add dsh-auto-exit

或从 GitHub 源安装(等同内容):

dsh plugin --profile web add github:xiaxingtianxia2-glitch/dsh-auto-exit

使用

  1. 启动 dsh --profile web,用浏览器打开 Web UI(默认 http://127.0.0.1:3080)。
  2. 直接关闭浏览器标签页/窗口(多个页面需全部关闭)。
  3. 15 秒后进程自动退出。

查看状态

curl http://127.0.0.1:3080/auto-exit/status
{"enabled":true,"armed":true,"sockets":2,"countdownMs":0,"graceSeconds":15,"pollMs":1000,"dryRun":false,"lastEvent":"armed","fired":false}

字段含义:sockets 当前页面连接数;countdownMs 剩余倒计时(0 = 未在倒计时); lastEvent 最近一次状态变化(idle/armed/lost/cancel/exit)。

配置

字段 默认值 说明
enabled true 总开关
graceSeconds 15 连接全部断开后等待的秒数再退出
pollMs 1000 检测间隔(毫秒)
armAfterFirstConnect true 见到首个页面连接后才生效(启动时未开页面不退出)
dryRun false 试运行:只记录「将要退出」日志,不真正退出

常见问题

  • 为什么还没退出? 还有其它页面/标签页开着,或多个浏览器窗口未关;全部 关闭后才开始倒计时。
  • 电脑休眠 / 浏览器崩溃也会退出吗? 会——连接断开即视为 UI 已不可用; 如不希望,调大 graceSeconds。
  • 怎么临时关闭本功能? 将 enabled 配置为 false,或卸载插件: dsh plugin --profile web remove dsh-auto-exit。

许可证

MIT

原始 README: https://github.com/xiaxingtianxia2-glitch/dsh-auto-exit/blob/main/README.md ↗