mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
57 lines
971 B
Go
57 lines
971 B
Go
|
// +build !windows
|
||
|
|
||
|
package libcontainerd
|
||
|
|
||
|
import "github.com/pkg/errors"
|
||
|
|
||
|
// process represents the state for the main container process or an exec.
|
||
|
type process struct {
|
||
|
// id is the logical name of the process
|
||
|
id string
|
||
|
|
||
|
// cid is the container id to which this process belongs
|
||
|
cid string
|
||
|
|
||
|
// pid is the identifier of the process
|
||
|
pid uint32
|
||
|
|
||
|
// io holds the io reader/writer associated with the process
|
||
|
io *IOPipe
|
||
|
|
||
|
// root is the state directory for the process
|
||
|
root string
|
||
|
}
|
||
|
|
||
|
func (p *process) ID() string {
|
||
|
return p.id
|
||
|
}
|
||
|
|
||
|
func (p *process) Pid() uint32 {
|
||
|
return p.pid
|
||
|
}
|
||
|
|
||
|
func (p *process) SetPid(pid uint32) error {
|
||
|
if p.pid != 0 {
|
||
|
return errors.Errorf("pid is already set to %d", pid)
|
||
|
}
|
||
|
|
||
|
p.pid = pid
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (p *process) IOPipe() *IOPipe {
|
||
|
return p.io
|
||
|
}
|
||
|
|
||
|
func (p *process) CloseIO() {
|
||
|
if p.io.Stdin != nil {
|
||
|
p.io.Stdin.Close()
|
||
|
}
|
||
|
if p.io.Stdout != nil {
|
||
|
p.io.Stdout.Close()
|
||
|
}
|
||
|
if p.io.Stderr != nil {
|
||
|
p.io.Stderr.Close()
|
||
|
}
|
||
|
}
|