CODE_ENVIRONMENT_UTILITY = 0,
CODE_ENVIRONMENT_DAEMON = 1,
CODE_ENVIRONMENT_LIBRARY = 2,
+ CODE_ENVIRONMENT_UTILITY_NODOUT = 3,
};
#ifdef __cplusplus
conf->set_val("keyring", "$osd_data/keyring", false);
break;
+ case CODE_ENVIRONMENT_UTILITY_NODOUT:
case CODE_ENVIRONMENT_LIBRARY:
conf->set_val_or_die("log_to_stderr", "false");
conf->set_val_or_die("err_to_stderr", "false");
ceph_options.push_back(i->c_str());
}
- //Suppress derr() output to stderr by default
if (!vm.count("debug")) {
- close(STDERR_FILENO);
- (void)open("/dev/null", O_WRONLY);
debug = false;
} else {
debug = true;
global_init(
&def_args, ceph_options, CEPH_ENTITY_TYPE_OSD,
- CODE_ENVIRONMENT_UTILITY, 0);
+ CODE_ENVIRONMENT_UTILITY_NODOUT, 0);
//CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
common_init_finish(g_ceph_context);
- g_ceph_context->_conf->apply_changes(NULL);
g_conf = g_ceph_context->_conf;
+ if (debug) {
+ g_conf->set_val_or_die("log_to_stderr", "true");
+ g_conf->set_val_or_die("err_to_stderr", "true");
+ }
+ g_conf->apply_changes(NULL);
//Verify that fspath really is an osd store
struct stat st;