Documentation ¶
Index ¶
- func DestroyCgroup(groups *cgroupConfig.Cgroup) error
- type ExecCommand
- type Executor
- type ExecutorContext
- type ProcessState
- type UniversalExecutor
- func (e *UniversalExecutor) Exit() error
- func (e *UniversalExecutor) LaunchCmd(command *ExecCommand, ctx *ExecutorContext) (*ProcessState, error)
- func (e *UniversalExecutor) ShutDown() error
- func (e *UniversalExecutor) UpdateLogConfig(logConfig *structs.LogConfig) error
- func (e *UniversalExecutor) Wait() (*ProcessState, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DestroyCgroup ¶ added in v0.3.0
func DestroyCgroup(groups *cgroupConfig.Cgroup) error
destroyCgroup kills all processes in the cgroup and removes the cgroup configuration from the host.
Types ¶
type ExecCommand ¶ added in v0.3.0
ExecCommand holds the user command and args. It's a lightweight replacement of exec.Cmd for serialization purposes.
type Executor ¶
type Executor interface { LaunchCmd(command *ExecCommand, ctx *ExecutorContext) (*ProcessState, error) Wait() (*ProcessState, error) ShutDown() error Exit() error UpdateLogConfig(logConfig *structs.LogConfig) error }
Executor is the interface which allows a driver to launch and supervise a process
type ExecutorContext ¶ added in v0.3.0
type ExecutorContext struct { // TaskEnv holds information about the environment of a Task TaskEnv *env.TaskEnvironment // AllocDir is the handle to do operations on the alloc dir of // the task AllocDir *allocdir.AllocDir // TaskName is the name of the Task TaskName string // TaskResources are the resource constraints for the Task TaskResources *structs.Resources // FSIsolation is a flag for drivers to impose file system // isolation on certain platforms FSIsolation bool // ResourceLimits is a flag for drivers to impose resource // contraints on a Task on certain platforms ResourceLimits bool // UnprivilegedUser is a flag for drivers to make the process // run as nobody UnprivilegedUser bool // LogConfig provides the configuration related to log rotation LogConfig *structs.LogConfig }
ExecutorContext holds context to configure the command user wants to run and isolate it
type ProcessState ¶ added in v0.3.0
type ProcessState struct { Pid int ExitCode int Signal int IsolationConfig *cstructs.IsolationConfig Time time.Time }
ProcessState holds information about the state of a user process.
type UniversalExecutor ¶ added in v0.3.0
type UniversalExecutor struct {
// contains filtered or unexported fields
}
UniversalExecutor is an implementation of the Executor which launches and supervises processes. In addition to process supervision it provides resource and file system isolation
func (*UniversalExecutor) Exit ¶ added in v0.3.0
func (e *UniversalExecutor) Exit() error
Exit cleans up the alloc directory, destroys cgroups and kills the user process
func (*UniversalExecutor) LaunchCmd ¶ added in v0.3.0
func (e *UniversalExecutor) LaunchCmd(command *ExecCommand, ctx *ExecutorContext) (*ProcessState, error)
LaunchCmd launches a process and returns it's state. It also configures an applies isolation on certain platforms.
func (*UniversalExecutor) ShutDown ¶ added in v0.3.0
func (e *UniversalExecutor) ShutDown() error
Shutdown sends an interrupt signal to the user process
func (*UniversalExecutor) UpdateLogConfig ¶ added in v0.3.0
func (e *UniversalExecutor) UpdateLogConfig(logConfig *structs.LogConfig) error
UpdateLogConfig updates the log configuration
func (*UniversalExecutor) Wait ¶ added in v0.3.0
func (e *UniversalExecutor) Wait() (*ProcessState, error)
Wait waits until a process has exited and returns it's exitcode and errors