1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Don't kill by pid for other drivers

Closes #4575
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
This commit is contained in:
Michael Crosby 2014-03-12 18:04:14 -07:00
parent 28994f86ee
commit 3fa99b35b0

View file

@ -160,22 +160,16 @@ func (runtime *Runtime) Register(container *Container) error {
if container.State.IsGhost() { if container.State.IsGhost() {
utils.Debugf("killing ghost %s", container.ID) utils.Debugf("killing ghost %s", container.ID)
existingPid := container.State.Pid
container.State.SetGhost(false) container.State.SetGhost(false)
container.State.SetStopped(0) container.State.SetStopped(0)
// We only have to handle this for lxc because the other drivers will ensure that
// no ghost processes are left when docker dies
if container.ExecDriver == "" || strings.Contains(container.ExecDriver, "lxc") { if container.ExecDriver == "" || strings.Contains(container.ExecDriver, "lxc") {
lxc.KillLxc(container.ID, 9) lxc.KillLxc(container.ID, 9)
} else { if err := container.Unmount(); err != nil {
command := &execdriver.Command{ utils.Debugf("ghost unmount error %s", err)
ID: container.ID,
} }
command.Process = &os.Process{Pid: existingPid}
runtime.execDriver.Kill(command, 9)
}
// ensure that the filesystem is also unmounted
if err := container.Unmount(); err != nil {
utils.Debugf("ghost unmount error %s", err)
} }
} }