]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
execute: pass logfile to lxc-init
authorChristian Brauner <christian.brauner@ubuntu.com>
Wed, 6 Dec 2017 14:37:12 +0000 (15:37 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 17 Dec 2017 15:01:45 +0000 (16:01 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/execute.c

index 9f0523a5d08b81a09c9f9ce069f53300373d03bb..3eaa7b1ffd951e6a7df7c31c356c8be2d26464a2 100644 (file)
@@ -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);