feat: add foreground mode, pause/resume commands, API docs

This commit is contained in:
2026-03-25 00:12:14 +08:00
parent b00f95b7fb
commit 8ce1e6531a
8 changed files with 502 additions and 76 deletions

110
README.md
View File

@@ -18,12 +18,6 @@ irm https://raw.githubusercontent.com/UnbalancedCat/smart-shutdown/main/install.
> **说明:** 该命令会自动下载最新版本,执行 `install` 将程序复制到 `C:\Program Files\SmartShutdown\` 并写入系统 `PATH` 环境变量,同时注册为 Windows 开机自启服务。此后您可在任意管理员终端直接使用 `smart-shutdown` 命令。
如需手动安装,也可前往 [Releases](https://github.com/UnbalancedCat/smart-shutdown/releases) 页面下载对应架构版本,然后在管理员终端中执行:
```powershell
.\smart-shutdown_windows_amd64.exe install
smart-shutdown start
```
### Linux (Ubuntu/Debian/CentOS 等)
在终端中执行以下一键安装命令:
@@ -32,24 +26,9 @@ smart-shutdown start
curl -sSL https://raw.githubusercontent.com/UnbalancedCat/smart-shutdown/main/install.sh | sudo sh
```
如需手动安装,可执行以下命令:
```bash
sudo curl -sSL https://github.com/UnbalancedCat/smart-shutdown/releases/latest/download/smart-shutdown_linux_amd64 -o /usr/local/bin/smart-shutdown && \
sudo chmod +x /usr/local/bin/smart-shutdown && \
sudo smart-shutdown install && \
sudo smart-shutdown start
```
## 快速开始
安装完成后,在管理员 / root 终端中执行首次启动
```bash
smart-shutdown start
```
如果程序未检测到配置文件,将自动引导您完成初始设置:
安装完成后,默认会自动运行如下引导,进行初始设置
```
========== 首次配置 ==========
@@ -76,60 +55,49 @@ Windows `sudo` 默认运行在 **ForceNewWindow强制新窗口** 模式下
1. **切换 sudo 为 Inline 模式**:打开 **系统设置 → 开发者选项 → 启用 sudo**,将模式改为 **内联 (Inline)**。此后 `sudo smart-shutdown status` 的输出将正常回显至当前终端。
2. **直接使用管理员终端**:右键点击终端图标,选择 **以管理员身份运行**,随后无需 `sudo` 前缀即可执行所有指令。
## CLI 终端管理指令 (Commands)
## 命令参考
成服务注册后,可通过以下指令直接管理守护进程状态流
*(注: 启停服务及修改配置的指令需在 **管理员级别 / root 权限** 终端内执行)*
整的命令说明、参数列表与使用示例,请查阅 [API.md](./API.md)
常用快捷参考:
| 命令 | 说明 |
|:---|:---|
| `smart-shutdown start` | 启动后台监控服务 |
| `smart-shutdown stop` | 停止后台监控服务 |
| `smart-shutdown restart` | 重启服务 |
| `smart-shutdown status` | 查看服务状态与最近日志 |
| `smart-shutdown config set <Key> <Value>` | 修改配置项 |
| `smart-shutdown pause --stop-after 2h` | 临时挂起后台 2 小时 |
| `smart-shutdown resume` | 立即恢复挂起的后台 |
| `smart-shutdown uninstall` | 卸载服务及环境变量 |
## 免安装便携使用与前台监控模式
如果您只是想临时使用网络检测自动关机功能,而**不想将程序安装为系统常驻服务**,您可以直接下载可执行文件进行免安装的便携式运行(基于前台模式)。
前往 [Releases](https://github.com/UnbalancedCat/smart-shutdown/releases) 页面下载对应您系统的可执行文件后,在同一目录下的终端中,直接带参数执行即可。例如:
### 运行状态查询
输出当前服务存活状态、载入的配置参数、日志存放路径及最近 10 条日志:
```bash
smart-shutdown status
# 临时在前台启动监控(非后台服务),检测目标 IP 8.8.8.8,脱机容忍设为 60 秒
.\smart-shutdown --target-ip 8.8.8.8 --window-sec 60
```
### 修改系统配置
直接修改配置参数并执行合法性校验。(注: 改写配置后必须执行 `smart-shutdown restart` 重启服务才能应用生效)
```bash
# 修改目标监控 IP 地址
smart-shutdown config set TargetIP 192.168.0.1
> **提示:**
> 1. 前台模式下产生的日志将单独写入 `network_monitor_front.log`,不会影响原有数据。关闭当前终端即可停止监控进程。
> 2. 关于前台模式的 `--stop-after` (设定运行多少时间后退出)、`--override-bg` (接管正在运行的后台服务) 等高阶参数详细说明,请参阅 [API.md](./API.md)。
# 修改断网响应的容忍监控窗口
smart-shutdown config set MonitorWindowSeconds 300
```
**扩展:手动安装为服务**
### 服务生命周期控制
```bash
# 停止当前运行的后台网络探测服务
smart-shutdown stop
如果您下载了二进制文件后改变主意,想手动将其注册为系统服务,也可以直接使用 `install` 命令:
# 启动后台服务并恢复网络探测
smart-shutdown start
# 重启后台服务
smart-shutdown restart
```
### 服务与环境卸载
停止并注销后台服务,清理系统目录中的程序副本与对应的系统环境变量:
```bash
smart-shutdown uninstall
```
*(如需查看完整的帮助说明,可执行 `smart-shutdown help`)*
## 默认配置参数详情
程序会在对应操作系统的后台数据存放区建立或读取 JSON 配置文件:
- Windows: `C:\ProgramData\SmartNetworkMonitor\config.json`
- Linux: `/etc/smart-network-monitor/config.json`
| 参数项 | 含义与功能说明 | 默认值 |
|:---|:---|:---|
| `TargetIP` | 需发送 ICMP 包验证联通性的目标 IPv4 地址。 | `192.168.3.1` |
| `MonitorWindowSeconds` | 网络中断被判定为异常并触发系统关机前,所能容忍的最长超时时长 (秒)。 | `180` |
| `ShutdownCountdown` | 容忍超限后,执行正式关机系统指令的警告倒计时缓冲时间 (秒)。 | `60` |
| `NormalPingInterval` | 网络连通性正常时,每次静默发包探测的间隔时间 (秒)。 | `15` |
## 本地日志存放位置
程序按日切割保存网络探测及中断记录,默认留存最近 30 天的文件:
- **Windows**: `C:\ProgramData\SmartNetworkMonitor\logs\network_monitor.log`
- **Linux**: `/var/log/smart-network-monitor/network_monitor.log`
- **Windows**:
```powershell
.\smart-shutdown install
```
- **Linux**:
```bash
sudo mv ./smart-shutdown_linux_amd64 /usr/local/bin/smart-shutdown
sudo chmod +x /usr/local/bin/smart-shutdown
sudo smart-shutdown install
```