1. 项目背景与核心功能解析
在Windows环境下管理后台服务常驻进程和终端用户界面(TUI)一直是开发者的痛点。这个开源脚本项目通过整合Gateway后台服务和TUI界面控制,实现了三大核心功能:
- 一键式启动/停止服务管理
- 后台进程守护与自动恢复
- 终端可视化交互界面
我曾在多个跨平台项目中遇到过服务进程意外退出的问题。传统解决方案需要手动编写复杂的批处理脚本或依赖第三方进程管理工具,而这个项目用不到200行代码就实现了完整的生命周期管理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖配置
2.1 系统要求检查
脚本需要Windows 10 1809及以上版本,主要依赖:
- PowerShell 5.1+(已内置)
- .NET Framework 4.8(多数机器已预装)
- 可选:Windows Terminal(推荐)
验证环境命令:
powershell复制$PSVersionTable.PSVersion
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | Select-Object Version
2.2 目录结构与权限设置
建议按以下结构组织项目文件:
code复制/openclaw-cn
├── /bin # 主程序目录
├── /logs # 日志目录
├── /config # 配置文件
└── start.ps1 # 主脚本
需要特别设置日志目录的写入权限:
powershell复制icacls .\logs /grant "Users:(OI)(CI)W"
3. 核心脚本实现解析
3.1 进程守护机制
脚本使用WMI事件订阅实现进程监控:
powershell复制$query = "SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='gateway.exe'"
Register-WmiEvent -Query $query -Action {
Write-Log "进程异常退出,正在重启..."
Start-Process -FilePath ".\bin\gateway.exe"
}
3.2 TUI界面实现
基于PowerShell的Write-Host实现彩色终端输出:
powershell复制function Show-Menu {
Write-Host "`n=== 网关控制面板 ===" -ForegroundColor Cyan
Write-Host "1. 启动服务" -ForegroundColor Green
Write-Host "2. 停止服务"
Write-Host "3. 查看日志"
Write-Host "Q. 退出`n" -ForegroundColor Red
}
4. 完整启动流程详解
4.1 服务启动时序
- 检查端口占用(默认8080):
powershell复制$portInUse = (Get-NetTCPConnection
