From f18383c3ebd7e2f4f89f1ae8c831ecc4dc5ff3cd 2013-01-13 10:50:41 From: HanzZ Date: 2013-01-13 10:50:41 Subject: [PATCH] chdir to working_dir also when not running as daemon --- diff --git a/spectrum/src/main.cpp b/spectrum/src/main.cpp index 68389e80864536d4e29cb08ee9b9b6be598ad27c..89fc653ba51ec2d177d3486461e6f8e4c8e29aea 100644 --- a/spectrum/src/main.cpp +++ b/spectrum/src/main.cpp @@ -398,7 +398,6 @@ int main(int argc, char **argv) // create directories try { - Transport::Util::createDirectories(&config, CONFIG_STRING(&config, "service.working_dir")); } catch (...) { @@ -451,7 +450,13 @@ int main(int argc, char **argv) // daemonize daemonize(CONFIG_STRING(&config, "service.working_dir").c_str(), CONFIG_STRING(&config, "service.pidfile").c_str()); // removeOldIcons(CONFIG_STRING(&config, "service.working_dir") + "/icons"); - } + } + else { + if ((chdir(CONFIG_STRING(&config, "service.working_dir").c_str())) < 0) { + std::cerr << "Cannot change directory to " << CONFIG_STRING(&config, "service.working_dir") << "\n"; + exit(1); + } + } #endif #ifdef WIN32 if (!run_service_name.empty()) {