Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / containerd / containerd / supervisor / signal.go
1 package supervisor
2
3 import (
4         "os"
5 )
6
7 // SignalTask holds needed parameters to signal a container
8 type SignalTask struct {
9         baseTask
10         ID     string
11         PID    string
12         Signal os.Signal
13 }
14
15 func (s *Supervisor) signal(t *SignalTask) error {
16         i, ok := s.containers[t.ID]
17         if !ok {
18                 return ErrContainerNotFound
19         }
20         processes, err := i.container.Processes()
21         if err != nil {
22                 return err
23         }
24         for _, p := range processes {
25                 if p.ID() == t.PID {
26                         return p.Signal(t.Signal)
27                 }
28         }
29         return ErrProcessNotFound
30 }