diff --git a/src/box/replication.cc b/src/box/replication.cc index 77c77b4ac1dc27a4b897847f4beb459508043a07..2651e5d6522be37f126cfa44c3881015ab5791da 100644 --- a/src/box/replication.cc +++ b/src/box/replication.cc @@ -170,6 +170,7 @@ replication_prefork(const char *snap_dir, const char *wal_dir) */ if (socketpair(PF_LOCAL, SOCK_STREAM, 0, sockpair) != 0) panic_syserror("socketpair"); + assert(sockpair[0] != STDOUT_FILENO && sockpair[0] != STDERR_FILENO); /* create spawner */ pid_t pid = fork(); diff --git a/src/say.cc b/src/say.cc index 9a27f730b7977b382cd0cedb74a69ec2ac115243..3cba2d42aadb40e940f3fa66c15aa73a1fc8b171 100644 --- a/src/say.cc +++ b/src/say.cc @@ -206,7 +206,7 @@ say_init_file() * Initialize logging subsystem to use in daemon mode. */ void -say_logger_init(const char *path, int level, int nonblock) +say_logger_init(const char *path, int level, int nonblock, int background) { *log_level = level; logger_nonblock = nonblock; @@ -220,10 +220,10 @@ say_logger_init(const char *path, int level, int nonblock) snprintf(log_path, sizeof(log_path), "%s", path); say_init_file(); } - dup2(log_fd, STDERR_FILENO); -#if 0 - dup2(log_fd, STDOUT_FILENO); -#endif + if (background) { + dup2(log_fd, STDERR_FILENO); + dup2(log_fd, STDOUT_FILENO); + } } if (nonblock) { int flags = fcntl(log_fd, F_GETFL, 0); diff --git a/src/say.h b/src/say.h index 7eba097447a0ad609470776da1f6dabc3ada97cf..b8132ef0f58f11bc14e9b5fb299643098764284e 100644 --- a/src/say.h +++ b/src/say.h @@ -61,7 +61,8 @@ say_set_log_level(int new_level); void say_init(const char *argv0); /* Move logging to a separate process. */ -void say_logger_init(const char *logger, int log_level, int nonblock); +void say_logger_init(const char *logger, int log_level, int nonblock, + int background); void vsay(int level, const char *filename, int line, const char *error, const char *format, va_list ap) diff --git a/src/tarantool.cc b/src/tarantool.cc index 9af242d40236c97b41301040489d452df310eff9..fe46976d6d68313a73ac48e47aa2c6b2219a0dbf 100644 --- a/src/tarantool.cc +++ b/src/tarantool.cc @@ -455,7 +455,8 @@ load_cfg() } say_logger_init(cfg_gets("logger"), cfg_geti("log_level"), - cfg_geti("logger_nonblock")); + cfg_geti("logger_nonblock"), + cfg_geti("background")); say_crit("version %s", tarantool_version()); say_crit("log level %i", cfg_geti("log_level"));