From b7c6b1dd523ec97cfd3243c0453645da61e76bb0 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Wed, 8 Mar 2023 15:07:28 -0700 Subject: [PATCH] kumod: raise soft rlimit nofile -> hard limit on startup --- crates/kumod/Cargo.toml | 2 +- crates/kumod/src/main.rs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/kumod/Cargo.toml b/crates/kumod/Cargo.toml index ca8ee1db..b31d1a5c 100644 --- a/crates/kumod/Cargo.toml +++ b/crates/kumod/Cargo.toml @@ -37,7 +37,7 @@ minijinja = {version="0.30",features=["source"]} mlua = {version="0.8", features=["vendored", "lua54", "async", "send", "serialize"]} mod-redis = {path="../mod-redis"} mod-sqlite = {path="../mod-sqlite"} -nix = "0.26" +nix = {version="0.26", features=["resource"]} once_cell = "1.17" ouroboros = "0.15" prometheus = "0.13" diff --git a/crates/kumod/src/main.rs b/crates/kumod/src/main.rs index 6358ad0a..78297925 100644 --- a/crates/kumod/src/main.rs +++ b/crates/kumod/src/main.rs @@ -4,6 +4,7 @@ use anyhow::Context; use caps::{CapSet, Capability, CapsHashSet}; use clap::{Parser, ValueEnum}; use metrics_prometheus::recorder::Layer; +use nix::sys::resource::{getrlimit, setrlimit, Resource}; use nix::unistd::{Uid, User}; use std::path::PathBuf; use tracing_subscriber::fmt::writer::BoxMakeWriter; @@ -116,6 +117,9 @@ fn main() -> anyhow::Result<()> { // runtime after we've called it. opts.drop_privs()?; + let (_no_file_soft, no_file_hard) = getrlimit(Resource::RLIMIT_NOFILE)?; + setrlimit(Resource::RLIMIT_NOFILE, no_file_hard, no_file_hard)?; + tokio::runtime::Builder::new_multi_thread() .enable_all() .build()