Loading os-posix.c +42 −37 Original line number Diff line number Diff line Loading @@ -206,8 +206,9 @@ void os_daemonize(void) if (daemonize) { pid_t pid; if (pipe(fds) == -1) if (pipe(fds) == -1) { exit(1); } pid = fork(); if (pid > 0) { Loading @@ -218,18 +219,21 @@ void os_daemonize(void) again: len = read(fds[0], &status, 1); if (len == -1 && (errno == EINTR)) if (len == -1 && (errno == EINTR)) { goto again; if (len != 1) } if (len != 1) { exit(1); } else if (status == 1) { fprintf(stderr, "Could not acquire pidfile: %s\n", strerror(errno)); exit(1); } else } else { exit(0); } else if (pid < 0) } } else if (pid < 0) { exit(1); } close(fds[0]); qemu_set_cloexec(fds[1]); Loading @@ -237,11 +241,11 @@ void os_daemonize(void) setsid(); pid = fork(); if (pid > 0) if (pid > 0) { exit(0); else if (pid < 0) } else if (pid < 0) { exit(1); } umask(027); signal(SIGTSTP, SIG_IGN); Loading @@ -260,20 +264,21 @@ void os_setup_post(void) again1: len = write(fds[1], &status, 1); if (len == -1 && (errno == EINTR)) if (len == -1 && (errno == EINTR)) { goto again1; if (len != 1) } if (len != 1) { exit(1); } if (chdir("/")) { perror("not able to chdir to /"); exit(1); } TFR(fd = qemu_open("/dev/null", O_RDWR)); if (fd == -1) if (fd == -1) { exit(1); } } change_root(); change_process_uid(); Loading Loading
os-posix.c +42 −37 Original line number Diff line number Diff line Loading @@ -206,8 +206,9 @@ void os_daemonize(void) if (daemonize) { pid_t pid; if (pipe(fds) == -1) if (pipe(fds) == -1) { exit(1); } pid = fork(); if (pid > 0) { Loading @@ -218,18 +219,21 @@ void os_daemonize(void) again: len = read(fds[0], &status, 1); if (len == -1 && (errno == EINTR)) if (len == -1 && (errno == EINTR)) { goto again; if (len != 1) } if (len != 1) { exit(1); } else if (status == 1) { fprintf(stderr, "Could not acquire pidfile: %s\n", strerror(errno)); exit(1); } else } else { exit(0); } else if (pid < 0) } } else if (pid < 0) { exit(1); } close(fds[0]); qemu_set_cloexec(fds[1]); Loading @@ -237,11 +241,11 @@ void os_daemonize(void) setsid(); pid = fork(); if (pid > 0) if (pid > 0) { exit(0); else if (pid < 0) } else if (pid < 0) { exit(1); } umask(027); signal(SIGTSTP, SIG_IGN); Loading @@ -260,20 +264,21 @@ void os_setup_post(void) again1: len = write(fds[1], &status, 1); if (len == -1 && (errno == EINTR)) if (len == -1 && (errno == EINTR)) { goto again1; if (len != 1) } if (len != 1) { exit(1); } if (chdir("/")) { perror("not able to chdir to /"); exit(1); } TFR(fd = qemu_open("/dev/null", O_RDWR)); if (fd == -1) if (fd == -1) { exit(1); } } change_root(); change_process_uid(); Loading