From 361514aca147f8826811c23cfac40c6ac995dfeb Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 11 Mar 2013 22:54:36 +0100 Subject: [PATCH] bootchart: bump RLIMIT_NOFILE only after we forked us off, so that the init system inherits the kernel default --- src/bootchart/bootchart.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bootchart/bootchart.c b/src/bootchart/bootchart.c index a722b2aab..e608af2e3 100644 --- a/src/bootchart/bootchart.c +++ b/src/bootchart/bootchart.c @@ -90,8 +90,6 @@ double arg_scale_y = 20.0; /* 16px = 1 process bar */ char arg_init_path[PATH_MAX] = "/sbin/init"; char arg_output_path[PATH_MAX] = "/run/log"; -static struct rlimit rlim; - static void signal_handler(int sig) { if (sig++) sig--; @@ -110,6 +108,7 @@ int main(int argc, char *argv[]) { int gind; int i, r; char *init = NULL, *output = NULL; + struct rlimit rlim; const ConfigTableItem items[] = { { "Bootchart", "Samples", config_parse_int, 0, &arg_samples_len }, @@ -125,10 +124,6 @@ int main(int argc, char *argv[]) { { NULL, NULL, NULL, 0, NULL } }; - rlim.rlim_cur = 4096; - rlim.rlim_max = 4096; - (void) setrlimit(RLIMIT_NOFILE, &rlim); - fn = "/etc/systemd/bootchart.conf"; f = fopen(fn, "re"); if (f) { @@ -260,6 +255,10 @@ int main(int argc, char *argv[]) { } argv[0][0] = '@'; + rlim.rlim_cur = 4096; + rlim.rlim_max = 4096; + (void) setrlimit(RLIMIT_NOFILE, &rlim); + /* start with empty ps LL */ ps_first = calloc(1, sizeof(struct ps_struct)); if (!ps_first) { -- 2.30.2