进程类

package
v0.0.0-...-fcd50c7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2024 License: MIT Imports: 32 Imported by: 0

Documentation

Overview

gproc 包实现了对进程的管理和通信功能。 md5:2bdecc6699345c91

Index

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 Listen

func Listen()

Listen 会阻塞并进行信号监听和处理。 md5:2425bc5d9026c36f

func MustShell

func MustShell(ctx context.Context, cmd string, out io.Writer, in io.Reader)

MustShell 行为与 Shell 相同,但如果发生任何错误则会引发 panic。 md5:8ffd357cf1ea4dbc

func MustShellExec

func MustShellExec(ctx context.Context, cmd string, environment ...[]string) string

MustShellExec 执行类似于 ShellExec,但如果发生任何错误,它将引发恐慌。 md5:9754cecde7636273

func MustShellRun

func MustShellRun(ctx context.Context, cmd string)

MustShellRun 执行与 ShellRun 相同的操作,但如果发生任何错误,则会引发恐慌。 md5:b0e6d628208193e7

func PPid

func PPid() int

PPid 返回自定义的父进程ID,如果存在的话,否则返回系统的父进程ID。 md5:177a13dad5ed9a39

func PPidOS

func PPidOS() int

PPidOS 返回当前进程的系统父进程ID。 请注意,PPidOS与PPid函数的区别在于,PPidOS返回系统的父进程ID,而如果存在自定义父进程ID,PPid函数可能会返回由gproc设置的自定义进程ID。 md5:f6f56ec93bfd6b19

func Pid

func Pid() int

Pid返回当前进程的pid。 md5:547eaf09253b67f9

func SearchBinary

func SearchBinary(file string) string

SearchBinary 在当前工作目录和PATH环境变量中搜索名为`file`的二进制文件。 md5:56a48fa45711f1c2

func SearchBinaryPath

func SearchBinaryPath(file string) string

SearchBinaryPath 在PATH环境变量中搜索二进制文件`file`。 md5:2762ea99f9622d59

func Send

func Send(pid int, data []byte, group ...string) error

Send 向给定pid的指定进程发送数据。 md5:32fd0c7aeb3b969c

func SetPPid

func SetPPid(ppid int) error

SetPPid 设置当前进程的自定义父进程ID。 md5:6da79f2272f63e59

func Shell

func Shell(ctx context.Context, cmd string, out io.Writer, in io.Reader) error

Shell 函数同步地执行命令 `cmd`,并使用给定的输入管道 `in` 和输出管道 `out`。 命令 `cmd` 从输入管道 `in` 读取输入参数,并自动将其输出写入到输出管道 `out`。 md5:6690cb7819cb1af8

func ShellExec

func ShellExec(ctx context.Context, cmd string, environment ...[]string) (result string, err error)

ShellExec 同步执行给定命令 `cmd` 并返回命令结果。 md5:218406708403afde

func ShellRun

func ShellRun(ctx context.Context, cmd string) error

ShellRun 同步执行给定的命令 `cmd`,并将命令结果输出到stdout。 md5:b97833e7f1598d90

func StartTime

func StartTime() time.Time

StartTime 返回当前进程的启动时间。 md5:322d4b9a3dae1290

func Uptime

func Uptime() time.Duration

Uptime 返回当前进程已经运行的持续时间. md5:105744cf83fdec5c

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager 是一个管理多个进程的进程管理器。 md5:608ec304d3cca78a

func NewManager

func NewManager() *Manager

NewManager 创建并返回一个新的进程管理器。 md5:bfef06576c70f94f

func (*Manager) AddProcess

func (m *Manager) AddProcess(pid int)

AddProcess 向当前管理器添加一个进程。 如果给定的 `pid` 对应的进程不存在,它不会做任何操作。 md5:c51d5832fb1ce691

func (*Manager) Clear

func (m *Manager) Clear()

Clear 会清除当前管理器中的所有进程。 md5:26053a86c2f65b33

func (*Manager) GetProcess

func (m *Manager) GetProcess(pid int) *Process

GetProcess 获取并返回一个Process对象。 如果找不到具有给定`pid`的进程,它将返回nil。 md5:d5b11d4d0e9fa1a3

func (*Manager) KillAll

func (m *Manager) KillAll() error

KillAll 在当前管理器中杀死所有进程。 md5:337f683854b75187

func (*Manager) NewProcess

func (m *Manager) NewProcess(path string, args []string, environment []string) *Process

NewProcess 创建并返回一个进程对象。 md5:41e1fd6b109e05e7

func (*Manager) Pids

func (m *Manager) Pids() []int

Pids 获取并返回当前管理器中的所有进程ID数组。 md5:a5ef21ec52c87400

func (*Manager) Processes

func (m *Manager) Processes() []*Process

Processes 获取并返回当前管理器中的所有进程。 md5:30ac76e5c68d45de

func (*Manager) RemoveProcess

func (m *Manager) RemoveProcess(pid int)

RemoveProcess 从当前管理器中移除一个进程。 md5:0076407de3a7d26a

func (*Manager) Send

func (m *Manager) Send(data []byte)

Send 将数据字节发送到当前管理器中的所有进程。 md5:05d5ed3b0a5c7e3e

func (*Manager) SendTo

func (m *Manager) SendTo(pid int, data []byte) error

SendTo 向当前管理器中的指定进程发送数据字节。 md5:b477f09d2f5cca5f

func (*Manager) SignalAll

func (m *Manager) SignalAll(sig os.Signal) error

SignalAll 向当前管理器中的所有进程发送信号 `sig`。 md5:64ce0027dcad8808

func (*Manager) Size

func (m *Manager) Size() int

Size 返回当前管理器中进程的数量。 md5:ffaeaa3ed9b66ed1

func (*Manager) WaitAll

func (m *Manager) WaitAll()

WaitAll等待直到所有进程退出。 md5:1d27f65463fe8c00

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

type Process struct {
	exec.Cmd
	Manager *Manager
	PPid    int
}

Process 是表示单个进程的结构体。 md5:f6524ce6eee4a18b

func NewProcess

func NewProcess(path string, args []string, environment ...[]string) *Process

NewProcess 创建并返回一个新的 Process。 md5:dbd46312fa39f087

func NewProcessCmd

func NewProcessCmd(cmd string, environment ...[]string) *Process

NewProcessCmd 创建并返回一个具有给定命令和可选环境变量数组的进程。 md5:01376a1e29c9935e

func (*Process) Kill

func (p *Process) Kill() (err error)

Kill 立即导致 Process 终止。 md5:4bacb16ab3b9aebe

func (*Process) Pid

func (p *Process) Pid() int

Pid 获取并返回进程的PID。 md5:7f6e89391a9d1aac

func (*Process) Release

func (p *Process) Release() error

Release 释放与进程 p 关联的任何资源,使其将来无法使用。 只有在不调用 Wait 的情况下才需要调用 Release。 md5:f3540c25ba14f0ee

func (*Process) Run

func (p *Process) Run(ctx context.Context) error

Run以阻塞方式执行进程。 md5:aeab1ddf5fca3d31

func (*Process) Send

func (p *Process) Send(data []byte) error

Send 向进程发送自定义数据。 md5:cb2381344fb13fd4

func (*Process) Signal

func (p *Process) Signal(sig os.Signal) error

Signal 向进程发送一个信号。 在Windows上发送Interrupt信号未实现。 md5:c1afe56a9d236095

func (*Process) Start

func (p *Process) Start(ctx context.Context) (int, error)

Start 以非阻塞方式开始执行进程。 如果成功,它将返回进程ID(pid),否则返回一个错误。 md5:4607fc00f35e6338

type SigHandler

type SigHandler func(sig os.Signal)

SigHandler 定义了一个用于处理信号的函数类型。 md5:d7319108f37510cd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL