基本介绍
进程管理以及进程间的通信是通过 gproc
模块实现的,其中进程间通信采用的是本地socket通信机制。
使用方式:
import "github.com/gogf/gf/v2/os/gproc"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/os/gproc
简要说明:
Manager
对象为进程管理对象,可以同时管理多个子进程(当前执行进程为父进程);Process
为进程对象,表示特定执行或者获取的一个进程资源;- 我们可以通过
Shell
、ShellExec
、ShellRun
来执行Shell指令:Shell
表示一个原生的Shell指令执行方式,带自定义的输入和输出控制;ShellExec
执行命令后将会返回输出的结果内容;ShellRun
执行命令后将会直接将返回内容输出到标准输出;- 我们可以使用
goroutine
来实现异步的执行,如:go ShellRun(...)
等等;
相关文档
📄️ 进程管理-基本使用
在GoFrame框架下进行进程管理,包括如何执行Shell命令、判断主进程与子进程的关系,以及多进程管理的基本用法。通过示例代码演示了gproc包的使用,如创建子进程、管理现有进程,并在Linux环境中实现对特定进程的监控和控制。
📄️ 进程管理-进程通信
GoFrame框架中的gproc组件用于进程通信的机制,包括常见的进程通信方式如信号、管道、共享内存等。重点说明了gproc通过Socket实现稳定和通用的进程通信方式,解析了使用Send和Receive方法进行消息传递的基本使用示例。
📄️ 进程管理-信号监听
使用GoFrame框架中的gproc组件实现信号监听和处理,从而解决多个组件冗余的信号处理逻辑及程序无法平滑退出的问题。通过统一的信号注册和回调处理,确保各组件能够有效接收到退出信号并进行析构,使信号处理逻辑更加严谨。
📄️ 进程管理-链路跟踪
使用GoFrame框架进行进程管理和链路跟踪的方法。通过使用OpenTelemetry规范,支持跨进程的链路跟踪特性,非常适用于临时运行的进程。示例代码展示了如何在主进程中启动子进程并进行链路信息传递,展示了GoFrame框架在进程管理中的强大功能。