Documentation ¶
Overview ¶
gproc 包实现了对进程的管理和通信功能。 md5:2bdecc6699345c91
Index ¶
- func AddSigHandler(handler SigHandler, signals ...os.Signal)
- func AddSigHandlerShutdown(handler ...SigHandler)
- func IsChild() bool
- func Listen()
- func MustShell(ctx context.Context, cmd string, out io.Writer, in io.Reader)
- func MustShellExec(ctx context.Context, cmd string, environment ...[]string) string
- func MustShellRun(ctx context.Context, cmd string)
- func PPid() int
- func PPidOS() int
- func Pid() int
- func SearchBinary(file string) string
- func SearchBinaryPath(file string) string
- func Send(pid int, data []byte, group ...string) error
- func SetPPid(ppid int) error
- func Shell(ctx context.Context, cmd string, out io.Writer, in io.Reader) error
- func ShellExec(ctx context.Context, cmd string, environment ...[]string) (result string, err error)
- func ShellRun(ctx context.Context, cmd string) error
- func StartTime() time.Time
- func Uptime() time.Duration
- type Manager
- func (m *Manager) AddProcess(pid int)
- func (m *Manager) Clear()
- func (m *Manager) GetProcess(pid int) *Process
- func (m *Manager) KillAll() error
- func (m *Manager) NewProcess(path string, args []string, environment []string) *Process
- func (m *Manager) Pids() []int
- func (m *Manager) Processes() []*Process
- func (m *Manager) RemoveProcess(pid int)
- func (m *Manager) Send(data []byte)
- func (m *Manager) SendTo(pid int, data []byte) error
- func (m *Manager) SignalAll(sig os.Signal) error
- func (m *Manager) Size() int
- func (m *Manager) WaitAll()
- type MsgRequest
- type MsgResponse
- type Process
- type SigHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddSigHandler ¶
func AddSigHandler(handler SigHandler, signals ...os.Signal)
AddSigHandler 为自定义的一个或多个信号添加自定义的信号处理器。 md5:996226c8d75ebdf5
func AddSigHandlerShutdown ¶
func AddSigHandlerShutdown(handler ...SigHandler)
AddSigHandlerShutdown 为关闭信号添加自定义信号处理器: - syscall.SIGINT(中断信号,通常由Ctrl+C触发) - syscall.SIGQUIT(退出信号,通常通过Ctrl+\触发) - syscall.SIGKILL(杀死信号,不可被捕获或忽略,用于强制终止进程) - syscall.SIGTERM(终止信号,用来请求程序正常退出) - syscall.SIGABRT(异常终止信号,通常由调用abort函数产生,用于指示严重错误) md5:6fd417c58f499e80
func IsChild ¶
func IsChild() bool
IsChild 检查并返回当前进程是否是子进程。 子进程是由另一个gproc进程 fork() 创建的。 md5:9ec53f2cdad75233
func MustShellExec ¶
MustShellExec 执行类似于 ShellExec,但如果发生任何错误,它将引发恐慌。 md5:9754cecde7636273
func MustShellRun ¶
MustShellRun 执行与 ShellRun 相同的操作,但如果发生任何错误,则会引发恐慌。 md5:b0e6d628208193e7
func PPidOS ¶
func PPidOS() int
PPidOS 返回当前进程的系统父进程ID。 请注意,PPidOS与PPid函数的区别在于,PPidOS返回系统的父进程ID,而如果存在自定义父进程ID,PPid函数可能会返回由gproc设置的自定义进程ID。 md5:f6f56ec93bfd6b19
func SearchBinary ¶
SearchBinary 在当前工作目录和PATH环境变量中搜索名为`file`的二进制文件。 md5:56a48fa45711f1c2
func SearchBinaryPath ¶
SearchBinaryPath 在PATH环境变量中搜索二进制文件`file`。 md5:2762ea99f9622d59
func Shell ¶
Shell 函数同步地执行命令 `cmd`,并使用给定的输入管道 `in` 和输出管道 `out`。 命令 `cmd` 从输入管道 `in` 读取输入参数,并自动将其输出写入到输出管道 `out`。 md5:6690cb7819cb1af8
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 是一个管理多个进程的进程管理器。 md5:608ec304d3cca78a
func (*Manager) AddProcess ¶
AddProcess 向当前管理器添加一个进程。 如果给定的 `pid` 对应的进程不存在,它不会做任何操作。 md5:c51d5832fb1ce691
func (*Manager) GetProcess ¶
GetProcess 获取并返回一个Process对象。 如果找不到具有给定`pid`的进程,它将返回nil。 md5:d5b11d4d0e9fa1a3
func (*Manager) NewProcess ¶
NewProcess 创建并返回一个进程对象。 md5:41e1fd6b109e05e7
func (*Manager) RemoveProcess ¶
RemoveProcess 从当前管理器中移除一个进程。 md5:0076407de3a7d26a
type MsgRequest ¶
type MsgRequest struct { SenderPid int // Sender PID. ReceiverPid int // Receiver PID. Group string // Message group name. Data []byte // Request data. }
MsgRequest是进程间通信的请求结构体。 md5:aa294ed7aef773f3
func Receive ¶
func Receive(group ...string) *MsgRequest
Receive 函数通过本地TCP监听来阻塞并接收来自其他进程的消息。 注意,只有当调用此函数时,才会启用TCP监听服务。 md5:dbf5481b7dcc4222
type MsgResponse ¶
type MsgResponse struct { Code int // 1: OK; Other: Error. Message string // Response message. Data []byte // Response data. }
MsgResponse 是进程通信中的响应结构体。 md5:a2e9e35f8a32b58e
type Process ¶
Process 是表示单个进程的结构体。 md5:f6524ce6eee4a18b
func NewProcess ¶
NewProcess 创建并返回一个新的 Process。 md5:dbd46312fa39f087
func NewProcessCmd ¶
NewProcessCmd 创建并返回一个具有给定命令和可选环境变量数组的进程。 md5:01376a1e29c9935e
func (*Process) Release ¶
Release 释放与进程 p 关联的任何资源,使其将来无法使用。 只有在不调用 Wait 的情况下才需要调用 Release。 md5:f3540c25ba14f0ee
type SigHandler ¶
SigHandler 定义了一个用于处理信号的函数类型。 md5:d7319108f37510cd