78 lines
3.0 KiB
Markdown
78 lines
3.0 KiB
Markdown
# batManage项目说明文档
|
||
|
||
## 项目概述
|
||
batManage是一个脚本管理与执行工具,主要用于对批处理脚本(.bat)和Python脚本(.py)进行统一管理、运行监控和日志记录,支持单次脚本运行模式,具备进程状态检测、重复启动防护等功能。
|
||
|
||
## 核心功能
|
||
1. **脚本运行管理**
|
||
- 支持.bat和.py两种类型脚本的启动执行
|
||
- 防止脚本重复运行(通过内存记录和系统进程检测双重校验)
|
||
- 实时捕获脚本输出并记录日志
|
||
|
||
2. **进程监控**
|
||
- 维护运行中脚本的进程列表
|
||
- 实时检测进程状态,处理进程结束后的资源清理
|
||
- 异常处理与日志记录
|
||
|
||
3. **日志管理**
|
||
- 记录脚本启动、运行状态、结束信息
|
||
- 捕获脚本输出内容并写入日志
|
||
- 记录错误信息与异常情况
|
||
|
||
## 关键模块说明
|
||
|
||
### 脚本启动模块(start_single_run_script函数)
|
||
该函数是项目核心功能实现,主要流程包括:
|
||
1. **运行状态检查**
|
||
- 检查内存中是否已有记录的运行进程
|
||
- 检测系统中是否存在对应脚本的运行进程
|
||
|
||
2. **脚本合法性验证**
|
||
- 检查脚本文件是否存在
|
||
- 验证脚本类型是否支持(仅支持.bat和.py)
|
||
|
||
3. **命令构建**
|
||
- 对.bat脚本:使用`cmd /c`命令执行
|
||
- 对.py脚本:使用配置的Python路径执行(默认使用"python")
|
||
|
||
4. **异步执行**
|
||
- 通过线程异步执行脚本,避免阻塞主程序
|
||
- 实时读取脚本输出并记录
|
||
- 处理脚本执行完成后的状态记录与资源清理
|
||
|
||
## 技术实现细节
|
||
- 使用`subprocess.Popen`创建子进程执行脚本
|
||
- 通过`threading.Thread`实现异步执行
|
||
- 使用进程返回码判断脚本执行结果(0为成功,非0为失败)
|
||
- 采用字典`running_processes`维护内存中的进程记录
|
||
- 提供`save_processes`方法持久化进程信息(具体实现未展示)
|
||
|
||
## 项目结构
|
||
```
|
||
batManage/
|
||
├── app.py # 核心功能实现
|
||
├── tasks/ # 脚本存放目录
|
||
│ ├── 1.bat
|
||
│ ├── 3.bat
|
||
│ └── 文件编码检测.py
|
||
├── templates/ # 前端模板目录
|
||
│ └── index.html
|
||
├── .idea/ # 项目配置目录
|
||
└── config.json # 配置文件
|
||
```
|
||
|
||
## 使用说明
|
||
1. 将需要管理的脚本放入tasks目录
|
||
2. 通过调用`start_single_run_script(script_name)`启动脚本
|
||
3. 系统会自动处理脚本运行过程中的监控与日志记录
|
||
|
||
## 注意事项
|
||
- 确保脚本路径正确,且具有可执行权限
|
||
- 对于Python脚本,可在配置中指定特定的Python解释器路径
|
||
- 系统会自动处理进程异常退出的情况,并清理相关记录
|
||
|
||
## 扩展建议
|
||
1. 增加定时任务功能,支持脚本周期性执行
|
||
2. 完善前端界面,提供可视化的脚本管理与监控
|
||
3. 增加脚本执行权限管理,限制特定脚本的运行权限
|
||
4. 实现脚本执行历史记录查询与统计分析功能 |