pid = fork();
if (pid < 0) {
SYSERROR("Failed to fork first child process");
- exit(EXIT_FAILURE);
+ _exit(EXIT_FAILURE);
}
/* second parent */
if (pid != 0) {
free_init_cmd(init_cmd);
lxc_free_handler(handler);
- exit(EXIT_SUCCESS);
+ _exit(EXIT_SUCCESS);
}
/* second child */
ret = chdir("/");
if (ret < 0) {
SYSERROR("Failed to change to \"/\" directory");
- exit(EXIT_FAILURE);
+ _exit(EXIT_FAILURE);
}
keepfds[0] = handler->conf->maincmd_fd;
ret = lxc_check_inherited(conf, true, keepfds,
sizeof(keepfds) / sizeof(keepfds[0]));
if (ret < 0)
- exit(EXIT_FAILURE);
+ _exit(EXIT_FAILURE);
/* redirect std{in,out,err} to /dev/null */
ret = null_stdfds();
if (ret < 0) {
ERROR("Failed to redirect std{in,out,err} to /dev/null");
- exit(EXIT_FAILURE);
+ _exit(EXIT_FAILURE);
}
/* become session leader */
free_init_cmd(init_cmd);
lxc_free_handler(handler);
if (daemonize)
- exit(EXIT_FAILURE);
+ _exit(EXIT_FAILURE);
return false;
}
free_init_cmd(init_cmd);
lxc_free_handler(handler);
if (daemonize)
- exit(EXIT_FAILURE);
+ _exit(EXIT_FAILURE);
return false;
}
free_init_cmd(init_cmd);
if (daemonize && ret != 0)
- exit(EXIT_FAILURE);
+ _exit(EXIT_FAILURE);
else if (daemonize)
- exit(EXIT_SUCCESS);
+ _exit(EXIT_SUCCESS);
if (ret != 0)
return false;