X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbootchart%2Fbootchart.c;h=e34c08a5eb54f16bb71e570f991ff4fb6c3464c0;hp=adfaba57b0077afaae10fa06b898d3887ad37039;hb=b823b5e272d07d31c12625a268e8d563289a4db5;hpb=1fd961211df69ce672252d543bf4777738647048 diff --git a/src/bootchart/bootchart.c b/src/bootchart/bootchart.c index adfaba57b..e34c08a5e 100644 --- a/src/bootchart/bootchart.c +++ b/src/bootchart/bootchart.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -32,6 +33,7 @@ #include #include #include +#include #include "bootchart.h" @@ -51,6 +53,7 @@ double interval; FILE *of = NULL; int overrun = 0; static int exiting = 0; +int sysfd=-1; /* graph defaults */ int entropy = 0; @@ -273,6 +276,9 @@ int main(int argc, char *argv[]) of = fopen(output_file, "w"); } + if (sysfd < 0) { + sysfd = open("/sys", O_RDONLY); + } /* wait for /proc to become available, discarding samples */ if (!(graph_start > 0.0)) @@ -331,7 +337,6 @@ int main(int argc, char *argv[]) if (ps->smaps) fclose(ps->smaps); } - closedir(proc); if (!of) { t = time(NULL); @@ -350,6 +355,9 @@ int main(int argc, char *argv[]) fprintf(stderr, "bootchartd: Wrote %s\n", output_file); fclose(of); + closedir(proc); + close(sysfd); + /* nitpic cleanups */ ps = ps_first; while (ps->next_ps) {