From: Christian Brauner Date: Wed, 6 Dec 2017 14:37:12 +0000 (+0100) Subject: execute: pass logfile to lxc-init X-Git-Tag: lxc-2.0.10~511 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c4989052594dfa2fe44eb84a52e286e45cadab7f;p=thirdparty%2Flxc.git execute: pass logfile to lxc-init Signed-off-by: Christian Brauner --- diff --git a/src/lxc/execute.c b/src/lxc/execute.c index 9f0523a5d..3eaa7b1ff 100644 --- a/src/lxc/execute.c +++ b/src/lxc/execute.c @@ -47,7 +47,8 @@ static int execute_start(struct lxc_handler *handler, void* data) int argc = 0, argc_add; char *initpath; - while (my_args->argv[argc++]); + while (my_args->argv[argc++]) + ; /* lxc-init -n name -- [argc] NULL -> 5 */ argc_add = 5; @@ -64,33 +65,42 @@ static int execute_start(struct lxc_handler *handler, void* data) initpath = choose_init(NULL); if (!initpath) { - ERROR("Failed to find an lxc-init or init.lxc"); + ERROR("Failed to find an init.lxc or init.lxc.static"); goto out2; } argv[i++] = initpath; + + argv[i++] = "-n"; + argv[i++] = (char *)handler->name; + + if (lxc_log_has_valid_level()) { + argv[i++] = "-l"; + argv[i++] = + (char *)lxc_log_priority_to_string(lxc_log_get_level()); + } + + if (handler->conf->logfile) { + argv[i++] = "-o"; + argv[i++] = (char *)handler->conf->logfile; + } + if (my_args->quiet) argv[i++] = "--quiet"; + if (!handler->conf->rootfs.path) { - argv[i++] = "--name"; - argv[i++] = (char *)handler->name; - argv[i++] = "--lxcpath"; + argv[i++] = "-P"; argv[i++] = (char *)handler->lxcpath; - - if (lxc_log_has_valid_level()) { - argv[i++] = "--logpriority"; - argv[i++] = (char *) - lxc_log_priority_to_string(lxc_log_get_level()); - } } + argv[i++] = "--"; for (j = 0; j < argc; j++) argv[i++] = my_args->argv[j]; argv[i++] = NULL; - NOTICE("exec'ing '%s'", my_args->argv[0]); + NOTICE("Exec'ing \"%s\"", my_args->argv[0]); execvp(argv[0], argv); - SYSERROR("failed to exec %s", argv[0]); + SYSERROR("Failed to exec %s", argv[0]); free(initpath); out2: free(argv);