log: enable output log to console when run as daemon.

This commit is contained in:
Nick Peng
2023-06-16 21:57:39 +08:00
parent a6e5ceb675
commit 8a9a11d6d9
3 changed files with 16 additions and 14 deletions

View File

@@ -855,7 +855,7 @@ int main(int argc, char *argv[])
}
if (daemon_ret > 0) {
ret = daemon_kickoff(daemon_ret, 0);
ret = daemon_kickoff(daemon_ret, 0, dns_conf_log_console | verbose_screen);
if (ret != 0) {
goto errout;
}
@@ -867,7 +867,7 @@ int main(int argc, char *argv[])
return ret;
errout:
if (daemon_ret > 0) {
daemon_kickoff(daemon_ret, ret);
daemon_kickoff(daemon_ret, ret, dns_conf_log_console | verbose_screen);
}
smartdns_test_notify(2);
return 1;

View File

@@ -1560,7 +1560,7 @@ errout:
return;
}
int daemon_kickoff(int fd, int status)
int daemon_kickoff(int fd, int status, int no_close)
{
if (fd <= 0) {
return -1;
@@ -1571,18 +1571,20 @@ int daemon_kickoff(int fd, int status)
return -1;
}
int fd_null = open("/dev/null", O_RDWR);
if (fd_null < 0) {
fprintf(stderr, "open /dev/null failed, %s\n", strerror(errno));
return -1;
}
if (no_close == 0) {
int fd_null = open("/dev/null", O_RDWR);
if (fd_null < 0) {
fprintf(stderr, "open /dev/null failed, %s\n", strerror(errno));
return -1;
}
dup2(fd_null, STDIN_FILENO);
dup2(fd_null, STDOUT_FILENO);
dup2(fd_null, STDERR_FILENO);
dup2(fd_null, STDIN_FILENO);
dup2(fd_null, STDOUT_FILENO);
dup2(fd_null, STDERR_FILENO);
if (fd_null > 2) {
close(fd_null);
if (fd_null > 2) {
close(fd_null);
}
}
close(fd);

View File

@@ -144,7 +144,7 @@ void close_all_fd(int keepfd);
int run_daemon(void);
int daemon_kickoff(int fd, int status);
int daemon_kickoff(int fd, int status, int no_close);
int write_file(const char *filename, void *data, int data_len);