add support to kill container process by pid

This adds support for signalling a container process by pid.

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

make Ps more extensible

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

ps: windows support

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
Evan Hazlett
2017-05-09 15:50:02 -04:00
parent fae11b6673
commit ef158f8b5e
14 changed files with 1523 additions and 145 deletions

View File

@@ -120,7 +120,7 @@ func (c *container) State(ctx context.Context) (plugin.State, error) {
return c, nil
}
func (c *container) Kill(ctx context.Context, signal uint32, all bool) error {
func (c *container) Kill(ctx context.Context, signal uint32, pid uint32, all bool) error {
if winsys.Signal(signal) == winsys.SIGKILL {
return c.ctr.Kill(ctx)
}
@@ -174,6 +174,16 @@ func (c *container) Pid() uint32 {
return c.ctr.Pid()
}
func (c *container) Ps(ctx context.Context) ([]uint32, error) {
// TODO (ehazlett): support finding all processes in windows container
p, err := c.ctr.ProcessList()
if err != nil {
return nil, err
}
log.G(ctx).Debug(p)
return []uint32{c.ctr.Pid()}, nil
}
func (c *container) setStatus(status plugin.Status) {
c.Lock()
c.status = status