# SCNET_Restart_Tool **Repository Path**: yylmzxc/SCNET_Restart_Tool ## Basic Information - **Project Name**: SCNET_Restart_Tool - **Description**: SCNET_Restart_Tool - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: web-x25.01.17-remaste - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-25 - **Last Updated**: 2025-10-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SCNET_Restart_Tool ## 项目介绍 SCNET_Restart_Tool 是一款专业的服务端程序自动监控和重启工具,专为确保 SCNET 服务端程序(如生存战争服务器)能够持续稳定运行而设计。该工具通过实时监控服务运行状态,提供多种智能重启机制,并支持远程命令控制,有效提高服务的可靠性和运维效率。 ## 功能特性 ### 1. 多服务器管理 - 支持同时配置和管理多个服务端实例 - 每个服务器可独立设置监控参数和重启策略 - 直观的列表展示所有服务器的运行状态 ### 2. 自动故障检测与重启 - 实时监控指定服务进程的运行状态,支持进程名+路径双重验证 - 当检测到服务意外终止时,自动执行重启操作 - 内置重试机制,确保服务可靠启动 - 详细的日志记录,便于问题追溯和分析 ### 3. 定时计划重启 - 支持设置每日固定时间点自动重启服务 - 重启前可发送关闭指令,确保服务正常关闭 - 可自定义定时重启的时间点 ### 4. 间隔周期重启 - 支持按照设定的时间间隔(小时)自动重启服务 - 适合需要定期清理内存和资源的服务场景 - 自动记录上次重启时间,确保间隔准确 ### 5. 远程命令控制 - 提供 TCP 协议接口,可向服务端发送自定义命令 - 支持命令发送前的密码验证 - 实时显示命令执行结果 ### 6. 文件夹管理 - 集成服务器相关文件夹快速访问功能 - 支持直接打开配置、日志、插件等常用文件夹 ### 7. 跨平台支持 - Windows 版本:提供图形用户界面,操作简便直观 - Linux 版本:命令行界面,适合服务器环境后台运行 ### 8. 日志系统 - 实时记录所有操作和状态变更 - 支持日志文件保存,便于后期查阅 - 可自定义日志保存路径 ### 9. 程序自检与权限管理 - 自动检测管理员权限,确保程序正常运行 - 提供权限提升选项,避免因权限不足导致功能受限 ## 技术架构 ### 核心技术 - **开发语言**:C# - **框架**:.NET Framework 4.7.2 (Windows版) / .NET 8.0 (Linux版) - **GUI框架**:Windows Forms (Windows版) - **网络通信**:Socket TCP/IP - **进程管理**:System.Diagnostics、WMI - **配置管理**:XML配置文件 (Windows版)、文本配置文件 (Linux版) - **日志系统**:自定义 LogManager 组件 ### 主要组件说明 1. **ToolMain.cs** - Windows 版的主窗体界面和核心逻辑 - 管理多个服务器配置和监控器实例 - 负责用户交互、配置管理和功能控制 2. **ServerMonitor.cs** - 服务器监控的核心组件 - 实现进程监控、自动重启、定时任务等功能 - 包含进程检测、启动、停止和命令发送功能 3. **ServerConfig.cs** - 服务器配置的数据结构定义 - 包含服务器基本信息、监控参数和状态 - 提供服务器相关文件夹路径的便捷访问 4. **LinuxRestartTool/Program.cs** - Linux 版的核心逻辑实现 - 命令行界面,适合服务器环境后台运行 - 提供基本的监控和重启功能 5. **LogManager.cs** - 日志管理组件,提供单例模式访问 - 支持实时日志显示和文件保存 - 支持不同日志级别(信息、警告、错误、调试) ## 安装与配置 ### 系统要求 - **Windows 版**:Windows 7 或更高版本,安装 .NET Framework 4.7.2 或更高版本 - **Linux 版**:支持 .NET 8.0 的 Linux 发行版(如 Ubuntu 22.04+, CentOS 9+ 等) ### 安装步骤 1. **Windows 版安装** - 从发布页面下载最新版本的 `SCNET_Restart_Tool.zip` - 解压到任意目录 - 右键点击 `SCNET_Restart_Tool.exe`,选择「以管理员身份运行」启动程序 - 如需开机自启,可创建快捷方式并放入启动文件夹 2. **Linux 版安装** - 从发布页面下载最新版本的 `LinuxRestartTool.zip` - 解压到目标目录 - 安装 .NET 8.0 Runtime:`sudo apt-get install -y dotnet-runtime-8.0`(Ubuntu/Debian) - 运行程序:`dotnet LinuxRestartTool.dll` - 如需后台运行,可使用 systemd 服务配置或 nohup 命令 ### 配置说明 #### Windows 版配置 1. **服务器基本配置** - 点击「新增服务器」按钮 - 填写服务器名称、程序路径(可通过「浏览文件」选择) - 设置服务器 IP 和端口(用于命令发送) - 如需密码验证,可设置访问密码 2. **重启策略配置** - **定时重启**:设置每日重启时间(格式:HH:MM) - **间隔重启**:设置间隔小时数(0表示禁用) - **命令功能**:勾选启用命令功能,允许发送指令到服务端 3. **保存配置** - 点击「保存配置」按钮,配置将自动保存到程序目录下的 `ServerConfigs.xml` 文件中 - 下次启动程序时,配置将自动加载 #### Linux 版配置 Linux 版通过配置文件 `default_program.config` 进行设置,文件包含以下行: ``` # 服务端程序路径 /path/to/scnet/server # 服务端进程名称 scnet-server # 定时重启时间(格式:HH:MM) 02:00 # 间隔重启小时数(0表示禁用) 6 # 上次间隔关闭时间(自动维护) 2023-01-01T00:00:00.0000000 ``` ## 使用指南 ### Windows 版使用 1. **服务器管理** - 启动程序后,点击「新增服务器」添加新的服务端配置 - 选择服务器后,可点击「编辑服务器」修改配置或「删除服务器」移除配置 - 服务器列表会显示所有配置的服务器及其当前状态 2. **服务控制** - 选择服务器后,点击「启动服务器」手动启动服务 - 点击「停止服务器」手动停止服务 - 点击「重启服务器」手动重启服务 - 点击「停止所有服务器」可一次性停止所有运行中的服务器 3. **监控管理** - 选择服务器后,点击「开启监控」开始自动监控服务状态 - 监控开启后,程序会自动检测服务状态并在服务终止时自动重启 - 点击「关闭监控」停止自动监控 4. **文件夹管理** - 选择服务器后,点击「文件夹管理」可快速访问服务器相关文件夹 - 支持直接打开配置、日志、插件等常用目录 5. **命令发送** - 在编辑模式中启用命令功能 - 在命令输入框中输入命令,点击「发送指令」发送到服务端 - 程序会显示命令执行的响应结果 ### Linux 版使用 1. 在终端中运行 `dotnet LinuxRestartTool.dll` 启动监控 2. 程序将在控制台显示运行状态信息和操作日志 3. 输入 `exit` 并按回车可停止监控程序 4. 后台运行方式:`nohup dotnet LinuxRestartTool.dll > restart.log 2>&1 &` 5. 使用 `Ctrl+C` 可中断正在前台运行的监控程序 ### 远程命令使用 Windows 版本中,可直接通过界面的命令输入框发送命令到服务端。常见命令示例: - `close 9 例行维护`:正常关闭服务端(带维护消息) - 其他自定义命令可根据服务端支持的命令进行发送 ## 常见问题解答 **Q: 程序启动时提示需要管理员权限?** A: 由于程序需要监控和管理系统进程,建议以管理员身份运行程序以确保功能正常。 **Q: 监控程序能够检测到服务崩溃,但无法自动重启?** A: 请检查以下几点: - 服务端程序路径是否正确 - 程序是否以管理员身份运行 - 目标服务端程序是否存在权限问题 **Q: 如何修改日志保存路径?** A: 点击界面右上角的「设置」按钮,在设置界面中可自定义日志保存路径。 **Q: 如何配置开机自启?** A: Windows 系统中,可创建程序快捷方式并放入启动文件夹;Linux 系统中,建议配置 systemd 服务。 **Q: Linux 版本支持多个服务器配置吗?** A: 目前 Linux 版本仅支持单个服务器配置,如需监控多个服务器,请运行多个实例。 **Q: 程序配置文件保存在哪里?** A: Windows 版配置保存在程序目录下的 `ServerConfigs.xml`;Linux 版配置保存在程序目录下的 `default_program.config`。 ## 开发与贡献 ### 开发环境搭建 1. 安装 Visual Studio 2022 或更高版本 2. 克隆项目代码 3. 打开 `SCNET_Restart_Tool.sln` 解决方案文件 4. 还原 NuGet 包:`dotnet restore` 5. 构建解决方案:`Build > Build Solution` ### 项目结构 - `SCNET_Restart_Tool`:Windows 主项目 - `界面`:包含所有 Windows 表单和用户界面 - `Res`:包含图标和资源文件 - `LinuxRestartTool`:Linux 命令行版本 ### 核心功能开发 - 如需扩展监控功能,请修改 `ServerMonitor.cs` - 如需添加新的界面元素,请修改 `ToolMain.cs` 和对应的设计器文件 - 如需添加新的配置项,请修改 `ServerConfig.cs` ### 贡献指南 1. Fork 本项目仓库 2. 创建您的特性分支 3. 提交您的更改 4. 推送到分支 5. 提交 Pull Request ## 更新日志 ### 主要更新 - 优化了进程检测逻辑,使用进程名+路径双重验证提高准确性 - 增加了自动重试机制,确保服务可靠启动 - 改进了日志系统,支持不同日志级别和文件保存 - 优化了用户界面,提供更直观的操作体验 - 修复了权限相关问题,确保程序在各种环境下正常运行 ## 许可证 本项目采用 MIT 许可证。详情请查看项目中的 LICENSE 文件。 ## 免责声明 本工具仅供学习和参考使用,使用本工具时请确保遵守相关法律法规。对于因使用本工具而导致的任何直接或间接损失,作者不承担任何责任。 --- 如有任何问题或建议,请提交 Issue 至本项目的 Gitee 页面。