2025-03-22 13:57:42 +08:00
2025-01-26 16:43:51 +08:00
2025-02-25 15:05:38 +08:00
2025-01-26 16:43:51 +08:00
2025-02-25 15:05:38 +08:00
2025-03-22 13:57:42 +08:00
2025-02-25 15:05:38 +08:00
2025-03-07 22:58:48 +08:00
2025-02-15 21:54:45 +08:00
2025-01-26 16:43:51 +08:00
2025-01-26 16:43:51 +08:00
2025-03-07 08:53:00 +00:00
2025-03-07 08:53:00 +00:00
2025-01-26 16:43:51 +08:00
2025-03-22 13:12:01 +08:00

Go Process Manager

Go Process Manager 是一个基于 Golang 开发的进程管理工具,提供了类似 screen 的进程管理功能,并支持 Web UI 可视化操作。该工具集成了日志管理、权限控制、进程性能监控、状态推送等功能,支持通过 cgroup 实现 CPU 和内存限制,同时还提供了任务管理和定时任务功能。


功能特性

核心功能

  • 进程管理支持进程的创建、启动、停止、重启和删除操作,提供类似 screen 的多进程管理能力。
  • Web UI 可视化操作提供友好的 Web 界面,用户可以通过浏览器轻松管理进程、查看日志和监控性能。
  • 日志管理支持将日志存储到 Elasticsearch 8 或 SQLite 中,提供高效的日志查询和分析功能。
  • 权限管理提供三种角色root、admin、user的权限控制确保系统安全性和灵活性。
  • 进程性能监控实时监控进程的 CPU、内存等资源使用情况帮助用户优化系统性能。
  • 进程状态推送支持进程状态的实时推送,用户可以通过 Web UI 或 API 推送进程的最新状态。
  • 资源限制通过 cgroup 实现 CPU 和内存的限制,防止进程占用过多系统资源。
  • 任务管理 支持任务管理、定时任务和 API 调用,满足自动化运维需求。

终端类型

  • **pty伪终端**基于伪终端实现,支持 ANSI 字符和快捷键操作,适合交互式命令行程序。
  • std标准输入输出 基于标准输入输出管道实现,适合非交互式程序或脚本。

角色权限

角色 角色管理 进程创建 操控进程 日志查看 任务管理
root
admin × ×
user × × 自定义 自定义 ×
  • root:拥有最高权限,可以管理所有进程、日志和用户角色。
  • admin:可以操控进程和查看日志,但不能创建进程或管理角色。
  • user:权限可自定义,适合普通用户使用。

使用指南

启动进程

Windows

  1. 下载 Windows 版本的二进制文件。
  2. 双击运行即可启动服务。

Linux

  1. 下载 Linux 版本的二进制文件。

  2. 使用以下命令赋予执行权限并启动:

    chmod 777 ./go_process_manager
    ./go_process_manager
    

Web 界面

  1. 启动服务后,访问 http://[ip]:8797
  2. 使用默认账号密码 root/root 登录。

Demo 演示

访问 Demo 演示 体验功能,使用账号 root/root 登录。


界面展示

进程管理

进程管理界面

  • 进程列表:显示所有运行的进程,包括进程 ID、名称、状态、资源使用情况等。
  • 操作按钮:支持启动、停止、重启和删除进程。

终端操作

终端操作界面

  • 终端模拟:支持 ANSI 字符和快捷键操作,提供类似本地终端的体验。
  • 输入输出:实时显示进程的标准输入和输出。

日志查看

日志查看界面

  • 日志查询:支持按时间、进程 ID、操作用户等条件过滤日志。

补充说明

日志管理

  • Elasticsearch 8:适合大规模日志存储和查询,支持分布式部署。
  • SQLite:轻量级日志存储,适合单机或小规模使用。

权限控制

  • root 用户:拥有最高权限,可以管理所有进程、日志和用户角色。
  • admin 用户:可以操控进程和查看日志,适合运维人员使用。
  • user 用户:权限可自定义,适合普通用户或开发人员使用。

资源限制

  • CPU 限制:通过 cgroup 设置进程的 CPU 使用上限。
  • 内存限制:通过 cgroup 设置进程的内存使用上限。

任务管理

  • 定时任务:支持 Cron 表达式,用户可以创建定时任务。
  • API 调用:提供 API触发任务。
  • 任务流:任务的链式执行。
  • 触发事件:通过进程的停止、启动、异常触发任务。

开发与部署

环境要求

  • Golang:版本 1.18 或以上。
  • Elasticsearch 8(可选):用于日志存储。
  • SQLite(可选):用于轻量级日志存储。

编译与运行

  1. 克隆项目:

    git clone https://github.com/lzh-1625/go_process_manager.git
    cd go_process_manager
    
  2. 编译项目:

    go build -o go_process_manager
    
  3. 运行项目:

    ./go_process_manager
    

贡献与反馈

欢迎提交 Issue 和 Pull Request帮助我们改进 Go Process Manager。如果有任何问题或建议请通过 GitHub Issues 反馈。


许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。


联系我们

感谢您使用 Go Process Manager希望这个工具能为您的进程管理带来便利。

Description
Implement a process management tool in Go.
Readme MIT 21 MiB
Languages
JavaScript 95.1%
Go 4.9%