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

Add kill for other drivers on restart

Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
This commit is contained in:
Michael Crosby 2014-03-26 00:04:55 +00:00
parent f067e26367
commit 5b9069bd99

View file

@ -174,6 +174,7 @@ func (runtime *Runtime) Register(container *Container) error {
if container.State.IsGhost() {
utils.Debugf("killing ghost %s", container.ID)
existingPid := container.State.Pid
container.State.SetGhost(false)
container.State.SetStopped(0)
@ -181,9 +182,20 @@ func (runtime *Runtime) Register(container *Container) error {
// no ghost processes are left when docker dies
if container.ExecDriver == "" || strings.Contains(container.ExecDriver, "lxc") {
lxc.KillLxc(container.ID, 9)
if err := container.Unmount(); err != nil {
utils.Debugf("ghost unmount error %s", err)
} else {
// use the current driver and ensure that the container is dead x.x
cmd := &execdriver.Command{
ID: container.ID,
}
var err error
cmd.Process, err = os.FindProcess(existingPid)
if err != nil {
utils.Debugf("cannot find existing process for %d", existingPid)
}
runtime.execDriver.Kill(cmd, 9)
}
if err := container.Unmount(); err != nil {
utils.Debugf("ghost unmount error %s", err)
}
}