Ensure virExec preserves logging environment

The virFork call resets all logging handlers that may have been
set. Re-enable them after fork in virExec, so that env variables
fir LIBVIRT_LOG_OUTPUTS and LIBVIRT_LOG_FILTERS take effect
until the execve()

* src/util/util.c: Preserve logging in child in virExec
This commit is contained in:
Daniel P. Berrange 2010-11-18 13:05:19 +00:00
parent 9288c31bf7
commit 882f78c3cb

View File

@ -602,6 +602,9 @@ __virExec(const char *const*argv,
childout = -1;
}
/* Initialize full logging for a while */
virLogSetFromEnv();
/* Daemonize as late as possible, so the parent process can detect
* the above errors with wait* */
if (flags & VIR_EXEC_DAEMON) {
@ -650,6 +653,9 @@ __virExec(const char *const*argv,
virClearCapabilities() < 0)
goto fork_error;
/* Close logging again to ensure no FDs leak to child */
virLogReset();
if (envp)
execve(argv[0], (char **) argv, (char**)envp);
else