67 lines
2.6 KiB
Markdown
67 lines
2.6 KiB
Markdown
# AGENTS.md - iFlow CLI 项目指南
|
|
|
|
## 项目概述
|
|
|
|
这是一个 **systemctl 详细信息查看脚本** (v2.0 模块化版本),用于在 Linux 系统中显示 Systemd 相关的全面信息。
|
|
|
|
### 项目类型
|
|
- **语言**: Bash Shell 脚本
|
|
- **平台**: Linux
|
|
- **版本**: 2.0 (模块化版本)
|
|
- **用途**: 系统管理、信息查看
|
|
|
|
### 模块化结构
|
|
|
|
脚本已重构为 22 个独立的功能模块,每个模块对应一个 `module_xxx()` 函数:
|
|
|
|
| 模块编号 | 模块名称 | 功能描述 |
|
|
|---------|---------|---------|
|
|
| 1 | `module_systemd_version` | Systemd 版本信息 |
|
|
| 2 | `module_system_info` | 系统基础信息 (主机名、内核、OS等) |
|
|
| 3 | `module_systemd_status` | Systemd 系统状态 |
|
|
| 4 | `module_service_stats` | 服务统计信息 |
|
|
| 5 | `module_failed_services` | 失败的服务详情 |
|
|
| 6 | `module_masked_services` | 已屏蔽(Masked)的服务 |
|
|
| 7 | `module_running_services` | 运行中的服务列表 |
|
|
| 8 | `module_timer` | Timer 定时任务 |
|
|
| 9 | `module_socket` | Socket 监听单元 |
|
|
| 10 | `module_target` | Target 目标单元 |
|
|
| 11 | `module_mount` | Mount 和 Automount 挂载点 |
|
|
| 12 | `module_path` | Path 路径监控单元 (新增) |
|
|
| 13 | `module_device` | Device 设备单元 (新增) |
|
|
| 14 | `module_scope_slice` | Scope 和 Slice 资源控制单元 (新增) |
|
|
| 15 | `module_dependencies` | 系统依赖关系 (新增) |
|
|
| 16 | `module_journal` | Journal 日志摘要 |
|
|
| 17 | `module_environment` | Systemd 环境变量 |
|
|
| 18 | `module_cgroup` | Cgroup 信息 (新增) |
|
|
| 19 | `module_performance` | 系统性能信息 |
|
|
| 20 | `module_power_management` | 电源管理状态 (新增) |
|
|
| 21 | `module_critical_services` | 关键系统服务状态 |
|
|
| 22 | `module_help` | 常用命令提示 |
|
|
|
|
### 新增功能 (相比 v1.0)
|
|
|
|
- **Path 单元**: 路径监控单元的状态和监控路径
|
|
- **Device 单元**: 设备单元的详细信息
|
|
- **Scope 和 Slice**: 资源控制单元的统计和资源使用
|
|
- **依赖关系**: 系统单元依赖树和依赖数量统计
|
|
- **Cgroup 信息**: cgroup 版本、控制器、资源使用
|
|
- **电源管理**: suspend/hibernate 状态和日志
|
|
- **已屏蔽服务**: 单独列出所有被屏蔽的服务
|
|
|
|
## 运行方式
|
|
|
|
```bash
|
|
# 直接运行脚本
|
|
./systemctl-info
|
|
|
|
# 或使用 bash 执行
|
|
bash systemctl-info
|
|
```
|
|
|
|
## 注意事项
|
|
|
|
- 需要 root 权限或适当的 systemd 访问权限
|
|
- 依赖系统命令:`systemctl`, `journalctl`, `uptime`, `free`, `top`, `hostname`, `uname`, `numfmt`
|
|
- 脚本会使用 `journalctl` 查看错误日志,可能需要相应权限
|
|
- 脚本输出使用 ANSI 颜色代码,建议在支持颜色的终端中运行 |