Ver código fonte

Merge pull request #4633 from crosbymichael/no-pid-kill

Don't kill by pid for other drivers
Victor Vieux 11 anos atrás
pai
commit
400ae98d23
1 arquivos alterados com 4 adições e 10 exclusões
  1. 4 10
      runtime/runtime.go

+ 4 - 10
runtime/runtime.go

@@ -160,22 +160,16 @@ 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)
 
+			// 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") {
 				lxc.KillLxc(container.ID, 9)
-			} else {
-				command := &execdriver.Command{
-					ID: container.ID,
+				if err := container.Unmount(); err != nil {
+					utils.Debugf("ghost unmount error %s", err)
 				}
-				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)
 			}
 		}