Przeglądaj źródła

Use proc/exe for reexec

You don't need to resolve the symlink for the exec as long as the
process is to keep running during execution.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Michael Crosby 7 lat temu
rodzic
commit
59ec65cd8c
1 zmienionych plików z 2 dodań i 6 usunięć
  1. 2 6
      daemon/oci_linux.go

+ 2 - 6
daemon/oci_linux.go

@@ -862,14 +862,10 @@ func (daemon *Daemon) createSpec(c *container.Container) (*specs.Spec, error) {
 
 	for _, ns := range s.Linux.Namespaces {
 		if ns.Type == "network" && ns.Path == "" && !c.Config.NetworkDisabled {
-			target, err := os.Readlink(filepath.Join("/proc", strconv.Itoa(os.Getpid()), "exe"))
-			if err != nil {
-				return nil, err
-			}
-
+			target := filepath.Join("/proc", strconv.Itoa(os.Getpid()), "exe")
 			s.Hooks = &specs.Hooks{
 				Prestart: []specs.Hook{{
-					Path: target, // FIXME: cross-platform
+					Path: target,
 					Args: []string{"libnetwork-setkey", c.ID, daemon.netController.ID()},
 				}},
 			}