From fa48b64e5004d4f56c03904bc02d274cc6e76b36 Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Mon, 14 Mar 2016 11:19:16 -0700 Subject: [PATCH] Remove logging from init Because namespaces are being joined in the C init and because errors reported during init are sent back to the parent process there is no reason to do logging in the init as it cannot open the file on the host side for `exec` anyways. Signed-off-by: Michael Crosby --- start.go | 4 +++- utils.go | 22 ++-------------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/start.go b/start.go index e8b4f5cb5..7e268d024 100644 --- a/start.go +++ b/start.go @@ -85,7 +85,9 @@ var initCommand = cli.Command{ runtime.LockOSThread() factory, _ := libcontainer.New("") if err := factory.StartInitialization(); err != nil { - fatal(err) + // as the error is sent back to the parent there is no need to log + // or write it to stderr because the parent process will handle this + os.Exit(1) } panic("libcontainer: container init failed to exec") }, diff --git a/utils.go b/utils.go index 3b43e8536..6d3c73442 100644 --- a/utils.go +++ b/utils.go @@ -150,33 +150,15 @@ func containerPreload(context *cli.Context) error { // loadFactory returns the configured factory instance for execing containers. func loadFactory(context *cli.Context) (libcontainer.Factory, error) { - var ( - debug = "false" - root = context.GlobalString("root") - ) - if context.GlobalBool("debug") { - debug = "true" - } + root := context.GlobalString("root") abs, err := filepath.Abs(root) if err != nil { return nil, err } - var logAbs string - if l := context.GlobalString("log"); l != "" { - if logAbs, err = filepath.Abs(context.GlobalString("log")); err != nil { - return nil, err - } - } return libcontainer.New(abs, libcontainer.Cgroupfs, func(l *libcontainer.LinuxFactory) error { l.CriuPath = context.GlobalString("criu") return nil - }, - libcontainer.InitArgs(os.Args[0], - "--log", logAbs, - "--log-format", context.GlobalString("log-format"), - fmt.Sprintf("--debug=%s", debug), - "init"), - ) + }) } // getContainer returns the specified container instance by loading it from state