diff options
| author | Dan Engelbrecht <[email protected]> | 2022-04-12 17:10:48 +0200 |
|---|---|---|
| committer | Dan Engelbrecht <[email protected]> | 2022-04-12 17:10:48 +0200 |
| commit | db8c83bb73c6489d8023bd05d4f9da171510ef8d (patch) | |
| tree | 5ce83b677448b7647c6d862e34af1fe5bc0769a3 /zenserver/zenserver.cpp | |
| parent | set open file limit at startup (diff) | |
| download | zen-db8c83bb73c6489d8023bd05d4f9da171510ef8d.tar.xz zen-db8c83bb73c6489d8023bd05d4f9da171510ef8d.zip | |
set open file limits after initialize of logging
Diffstat (limited to 'zenserver/zenserver.cpp')
| -rw-r--r-- | zenserver/zenserver.cpp | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp index d8e46baf7..e8d9477ea 100644 --- a/zenserver/zenserver.cpp +++ b/zenserver/zenserver.cpp @@ -1024,6 +1024,26 @@ ZenEntryPoint::Run() InitializeLogging(ServerOptions); +#if ZEN_PLATFORM_LINUX || ZEN_PLATFORM_MAC + struct rlimit Limit; + int Error = getrlimit(RLIMIT_NOFILE, &Limit); + if (Error) + { + ZEN_WARN("failed getting rlimit RLIMIT_NOFILE, reason '{}'", MakeErrorCode(Error).message()); + } + else + { + struct rlimit NewLimit = Limit; + NewLimit.rlim_cur = 10240; + NewLimit.rlim_max = 10240; + Error = setrlimit(RLIMIT_NOFILE, &NewLimit); + if (Error != 0) + { + ZEN_WARN("failed to set RLIMIT_NOFILE limits from rlim_cur = {}, rlim_max {} to rlim_cur = {}, rlim_max {}, reason '{}'", Limit.rlim_cur, Limit.rlim_max, NewLimit.rlim_cur, NewLimit.rlim_max, MakeErrorCode(Error).message()); + } + } +#endif + ZEN_INFO(ZEN_APP_NAME " - using lock file at '{}'", LockFilePath); ZEN_INFO(ZEN_APP_NAME " - starting on port {}, version '{}'", ServerOptions.BasePort, ZEN_CFG_VERSION_BUILD_STRING_FULL); @@ -1232,27 +1252,6 @@ main(int argc, char* argv[]) ZenWindowsService App(ServerOptions); return App.ServiceMain(); #else - -#if ZEN_PLATFORM_LINUX || ZEN_PLATFORM_MAC - struct rlimit Limit; - int Error = getrlimit(RLIMIT_NOFILE, &Limit); - if (Error) - { - ZEN_WARN("failed getting rlimit RLIMIT_NOFILE, reason '{}'", MakeErrorCode(Error).message()); - } - else - { - struct rlimit NewLimit = Limit; - NewLimit.rlim_cur = 10240; - NewLimit.rlim_max = 10240; - Error = setrlimit(RLIMIT_NOFILE, &NewLimit); - if (Error != 0) - { - ZEN_WARN("failed to set RLIMIT_NOFILE limits from rlim_cur = {}, rlim_max {} to rlim_cur = {}, rlim_max {}, reason '{}'", Limit.rlim_cur, Limit.rlim_max, NewLimit.rlim_cur, NewLimit.rlim_max, MakeErrorCode(Error).message()); - } - } -#endif - if (ServerOptions.InstallService || ServerOptions.UninstallService) { throw std::runtime_error("Service mode is not supported on this platform"); |