aboutsummaryrefslogtreecommitdiff
path: root/zenserver/zenserver.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-04-12 17:10:48 +0200
committerDan Engelbrecht <[email protected]>2022-04-12 17:10:48 +0200
commitdb8c83bb73c6489d8023bd05d4f9da171510ef8d (patch)
tree5ce83b677448b7647c6d862e34af1fe5bc0769a3 /zenserver/zenserver.cpp
parentset open file limit at startup (diff)
downloadzen-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.cpp41
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");