Documentation ¶
Overview ¶
Package gproc implements management and communication for processes.
Index ¶
- func IsChild() bool
- 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(cmd string, out io.Writer, in io.Reader) error
- func ShellExec(cmd string, environment ...[]string) (string, error)
- func ShellRun(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
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsChild ¶
func IsChild() bool
IsChild checks and returns whether current process is a child process. A child process is forked by another gproc process.
func PPid ¶
func PPid() int
PPid returns the custom parent pid if exists, or else it returns the system parent pid.
func PPidOS ¶
func PPidOS() int
PPidOS returns the system parent pid of current process. Note that the difference between PPidOS and PPid function is that the PPidOS returns the system ppid, but the PPid functions may return the custom pid by gproc if the custom ppid exists.
func SearchBinary ¶
SearchBinary searches the binary <file> in current working folder and PATH environment.
func SearchBinaryPath ¶
SearchBinaryPath searches the binary <file> in PATH environment.
func Shell ¶
Shell executes command <cmd> synchronizingly with given input pipe <in> and output pipe <out>. The command <cmd> reads the input parameters from input pipe <in>, and writes its output automatically to output pipe <out>.
func ShellExec ¶
ShellExec executes given command <cmd> synchronizingly and returns the command result.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
进程管理器
func (*Manager) NewProcess ¶
创建一个进程(不执行)
type MsgRequest ¶
type MsgRequest struct { SendPid int // Sender PID. RecvPid int // Receiver PID. Group string // Message group name. Data []byte // Request data. }
MsgRequest is the request structure for process communication.
func Receive ¶
func Receive(group ...string) *MsgRequest
Receive blocks and receives message from other process using local TCP listening. Note that, it only enables the TCP listening service when this function called.
type MsgResponse ¶
type MsgResponse struct { Code int // 1: OK; Other: Error. Message string // Response message. Data []byte // Response data. }
MsgResponse is the response structure for process communication.
type Process ¶
Process is the struct for a single process.
func NewProcess ¶
NewProcess creates and returns a new Process.
func NewProcessCmd ¶
NewProcessCmd creates and returns a process with given command and optional environment variable array.
func (*Process) Release ¶
Release releases any resources associated with the Process p, rendering it unusable in the future. Release only needs to be called if Wait is not.