chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bootchart: parse /etc/os-release rather than system-release
[elogind.git]
/
src
/
bootchart
/
bootchart.c
diff --git
a/src/bootchart/bootchart.c
b/src/bootchart/bootchart.c
index adfaba57b0077afaae10fa06b898d3887ad37039..7affacfdbfebb01e685d1584ec18a464a75bc627 100644
(file)
--- a/
src/bootchart/bootchart.c
+++ b/
src/bootchart/bootchart.c
@@
-23,6
+23,7
@@
#include <sys/time.h>
#include <sys/types.h>
#include <sys/resource.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/resource.h>
+#include <sys/stat.h>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
@@
-32,6
+33,7
@@
#include <getopt.h>
#include <limits.h>
#include <errno.h>
#include <getopt.h>
#include <limits.h>
#include <errno.h>
+#include <fcntl.h>
#include "bootchart.h"
#include "bootchart.h"
@@
-51,6
+53,7
@@
double interval;
FILE *of = NULL;
int overrun = 0;
static int exiting = 0;
FILE *of = NULL;
int overrun = 0;
static int exiting = 0;
+int sysfd=-1;
/* graph defaults */
int entropy = 0;
/* graph defaults */
int entropy = 0;
@@
-79,6
+82,7
@@
static void signal_handler(int sig)
int main(int argc, char *argv[])
{
int main(int argc, char *argv[])
{
+ _cleanup_free_ char *build = NULL;
struct sigaction sig;
struct ps_struct *ps;
char output_file[PATH_MAX];
struct sigaction sig;
struct ps_struct *ps;
char output_file[PATH_MAX];
@@
-273,6
+277,15
@@
int main(int argc, char *argv[])
of = fopen(output_file, "w");
}
of = fopen(output_file, "w");
}
+ if (sysfd < 0) {
+ sysfd = open("/sys", O_RDONLY);
+ }
+
+ if (!build) {
+ parse_env_file("/etc/os-release", NEWLINE,
+ "PRETTY_NAME", &build,
+ NULL);
+ }
/* wait for /proc to become available, discarding samples */
if (!(graph_start > 0.0))
/* wait for /proc to become available, discarding samples */
if (!(graph_start > 0.0))
@@
-331,7
+344,6
@@
int main(int argc, char *argv[])
if (ps->smaps)
fclose(ps->smaps);
}
if (ps->smaps)
fclose(ps->smaps);
}
- closedir(proc);
if (!of) {
t = time(NULL);
if (!of) {
t = time(NULL);
@@
-345,11
+357,14
@@
int main(int argc, char *argv[])
exit (EXIT_FAILURE);
}
exit (EXIT_FAILURE);
}
- svg_do();
+ svg_do(
build
);
fprintf(stderr, "bootchartd: Wrote %s\n", output_file);
fclose(of);
fprintf(stderr, "bootchartd: Wrote %s\n", output_file);
fclose(of);
+ closedir(proc);
+ close(sysfd);
+
/* nitpic cleanups */
ps = ps_first;
while (ps->next_ps) {
/* nitpic cleanups */
ps = ps_first;
while (ps->next_ps) {