summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--os-posix.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/os-posix.c b/os-posix.c
index e31a099a2b..d687896f91 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -47,7 +47,7 @@
static struct passwd *user_pwd;
static const char *chroot_dir;
static int daemonize;
-static int fds[2];
+static int daemon_pipe;
void os_setup_early_signal_handling(void)
{
@@ -205,6 +205,7 @@ void os_daemonize(void)
{
if (daemonize) {
pid_t pid;
+ int fds[2];
if (pipe(fds) == -1) {
exit(1);
@@ -236,7 +237,8 @@ void os_daemonize(void)
}
close(fds[0]);
- qemu_set_cloexec(fds[1]);
+ daemon_pipe = fds[1];
+ qemu_set_cloexec(daemon_pipe);
setsid();
@@ -263,7 +265,7 @@ void os_setup_post(void)
ssize_t len;
again1:
- len = write(fds[1], &status, 1);
+ len = write(daemon_pipe, &status, 1);
if (len == -1 && (errno == EINTR)) {
goto again1;
}
@@ -296,7 +298,7 @@ void os_pidfile_error(void)
{
if (daemonize) {
uint8_t status = 1;
- if (write(fds[1], &status, 1) != 1) {
+ if (write(daemon_pipe, &status, 1) != 1) {
perror("daemonize. Writing to pipe\n");
}
} else