534056668/dsh-systemd-restart ↗★ 0

dsh-systemd-restart

基于systemd的DSH Web安全重启插件 适合由systemd托管且配置了自动重启的DSH宿主机,提供无痛的网页端重启按钮。

包名
dsh-systemd-restart
兼容性
待验证
Harness 依赖范围
>=0.2.0-rc.1
Cordis 依赖范围
^4.0.2
版本
0.1.0
许可证
MIT
最近更新
2026年10月25日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:534056668/dsh-systemd-restart

使用

设置 → 通用 / General → 重启 dsh web:

  • 第一次点击武装按钮(确认重启?,5 秒后自动取消),第二次点击执行;
  • 提示行先说清这台机器会怎么重启(例如「unit dsh-web.service 的 Restart=always:进程退出即被拉起,不需要任何权限」),以及上次重启的停机时长;
  • 页面断开后在后台轮询 boot id,新进程一开始服务就自动刷新;120 秒还没起来就停下并给出日志位置。

配置

行级 config(在 profile 的 cordis.patch.yml 里用 - id: systemd-restart + config: 覆盖; 注意它是整体替换,不是逐键合并):

键类型默认含义
modeauto / kill / systemctl / offauto重启方式。auto 读 unit 的 Restart= 决定
delayMsnumber1500回执发出后等多久再退出,给浏览器留出收到 202 的时间
unitstring''显式指定 systemd unit;留空则从 /proc/self/cgroup 探测
stateFilestring''状态文件路径;留空则用 $DSH_HOME/storages/dsh-systemd-restart/state.json
maxRestartsnumber3窗口内允许的重启次数,超出直接拒绝
windowMsnumber600000上面那个窗口(毫秒)

auto 的判定:unit 的 Restart=always → kill;否则若本机有 systemd-run 且是用户级 unit → systemctl(在独立 cgroup 的瞬时单元里跑 systemctl --user restart,所以不会被连坐); 两者都不成立 → off,并在按钮那一行写清原因,而不是假装能用。