X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flaunch.c;h=f8ab02926675c1c3226089d965f72a7d3a2cedde;hb=340a13f9915e5a06385a3ec2178e25539cfcd5bc;hp=a4dc98f1e5d3b0cafab3d99c828758c214f58faf;hpb=1700f8fc7482bd73efd37709d301d76f610720fb;p=libguestfs.git diff --git a/src/launch.c b/src/launch.c index a4dc98f..f8ab029 100644 --- a/src/launch.c +++ b/src/launch.c @@ -625,7 +625,7 @@ launch_appliance (guestfs_h *g) guestfs___print_timestamped_argv (g, (const char **)g->cmdline); if (!g->direct) { - /* Set up stdin, stdout. */ + /* Set up stdin, stdout, stderr. */ close (0); close (1); close (wfd[1]); @@ -641,6 +641,14 @@ launch_appliance (guestfs_h *g) if (dup (rfd[1]) == -1) goto dup_failed; + /* Particularly since qemu 0.15, qemu spews all sorts of debug + * information on stderr. It is useful to both capture this and + * not confuse casual users, so send stderr to the pipe as well. + */ + close (2); + if (dup (rfd[1]) == -1) + goto dup_failed; + close (wfd[0]); close (rfd[1]); } @@ -680,7 +688,7 @@ launch_appliance (guestfs_h *g) pid_t parent_pid = getppid (); /* Writing to argv is hideously complicated and error prone. See: - * http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/ps_status.c?rev=1.33.2.1;content-type=text%2Fplain + * http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/misc/ps_status.c;hb=HEAD */ /* Loop around waiting for one or both of the other processes to