mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 01:25:21 +00:00
Fixed compatibility issue [#CONV-3742].
This commit is contained in:
parent
16e1632b15
commit
bbf5c62f17
@ -206,15 +206,24 @@ void Daemon::initialize(Application& self)
|
||||
throw Poco::Exception("Cannot setrlimit");
|
||||
}
|
||||
|
||||
// Сбросим генератор случайных чисел
|
||||
srandom(time(NULL));
|
||||
|
||||
p_TaskManager = new TaskManager();
|
||||
ServerApplication::initialize(self);
|
||||
|
||||
// Создадим pid-file, если запущен, как демон
|
||||
if (config().getBool("application.runAsDaemon", false))
|
||||
m_Pid.seed(config().getString("pid", "pid"));
|
||||
bool is_daemon = config().getBool("application.runAsDaemon", false);
|
||||
|
||||
if (is_daemon)
|
||||
{
|
||||
/** При создании pid файла и поиске конфигурации, будем интерпретировать относительные пути
|
||||
* от директории запуска программы.
|
||||
*/
|
||||
std::string path = config().getString("application.path");
|
||||
if (0 != chdir(path.c_str()))
|
||||
throw Poco::Exception("Cannot change directory to " + path);
|
||||
|
||||
/// Создадим pid-file.
|
||||
if (is_daemon)
|
||||
m_Pid.seed(config().getString("pid", "pid"));
|
||||
}
|
||||
|
||||
// Считаем конфигурацию
|
||||
reloadConfiguration();
|
||||
@ -242,12 +251,13 @@ void Daemon::initialize(Application& self)
|
||||
for (AbstractConfiguration::Keys::iterator it = address_keys.begin(); it != address_keys.end(); ++it)
|
||||
subscribers.push_back(Poco::Net::SocketAddress(config().getString("notify." + *it)));
|
||||
}
|
||||
}
|
||||
|
||||
void Daemon::uninitialize()
|
||||
{
|
||||
ServerApplication::uninitialize();
|
||||
delete p_TaskManager;
|
||||
if (is_daemon)
|
||||
{
|
||||
/// Сменим директорию обратно в корень.
|
||||
if (0 != chdir("/"))
|
||||
throw Poco::Exception("Cannot change directory to /");
|
||||
}
|
||||
}
|
||||
|
||||
/// Заставляет демон завершаться, если хотя бы одна задача завершилась неудачно
|
||||
|
Loading…
Reference in New Issue
Block a user