[systemd-commits] src/bootchart

Lennart Poettering lennart at kemper.freedesktop.org
Mon Mar 11 14:54:42 PDT 2013


 src/bootchart/bootchart.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

New commits:
commit 361514aca147f8826811c23cfac40c6ac995dfeb
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Mar 11 22:54:36 2013 +0100

    bootchart: bump RLIMIT_NOFILE only after we forked us off, so that the init system inherits the kernel default

diff --git a/src/bootchart/bootchart.c b/src/bootchart/bootchart.c
index a722b2a..e608af2 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) {



More information about the systemd-commits mailing list