chiark / gitweb /
networkctl: port from libudev to sd-device
[elogind.git] / src / bootchart / bootchart.c
index 2fac30039d5d61cbad47d8c43e23e5d07cbce7ba..f50479d0f8f642055a64507a1901db7cb2ae9926 100644 (file)
@@ -73,7 +73,7 @@ int sysfd=-1;
 #define DEFAULT_HZ 25.0
 #define DEFAULT_SCALE_X 100.0 /* 100px = 1sec */
 #define DEFAULT_SCALE_Y 20.0  /* 16px = 1 process bar */
-#define DEFAULT_INIT ROOTLIBDIR "/systemd/systemd"
+#define DEFAULT_INIT ROOTLIBEXECDIR "/systemd"
 #define DEFAULT_OUTPUT "/run/log"
 
 /* graph defaults */
@@ -268,10 +268,11 @@ static int parse_argv(int argc, char *argv[]) {
 
 static void do_journal_append(char *file) {
         struct iovec iovec[5];
-        int r, f, j = 0;
+        int r, j = 0;
         ssize_t n;
         _cleanup_free_ char *bootchart_file = NULL, *bootchart_message = NULL,
                 *p = NULL;
+        _cleanup_close_ int fd = -1;
 
         bootchart_file = strappend("BOOTCHART_FILE=", file);
         if (bootchart_file)
@@ -291,18 +292,17 @@ static void do_journal_append(char *file) {
 
         memcpy(p, "BOOTCHART=", 10);
 
-        f = open(file, O_RDONLY|O_CLOEXEC);
-        if (f < 0) {
-                log_error_errno(errno, "Failed to read bootchart data: %m");
+        fd = open(file, O_RDONLY|O_CLOEXEC);
+        if (fd < 0) {
+                log_error_errno(errno, "Failed to open bootchart data \"%s\": %m", file);
                 return;
         }
-        n = loop_read(f, p + 10, BOOTCHART_MAX, false);
+
+        n = loop_read(fd, p + 10, BOOTCHART_MAX, false);
         if (n < 0) {
                 log_error_errno(n, "Failed to read bootchart data: %m");
-                close(f);
                 return;
         }
-        close(f);
 
         iovec[j].iov_base = p;
         iovec[j].iov_len = 10 + n;
@@ -395,15 +395,6 @@ int main(int argc, char *argv[]) {
                 sampledata->sampletime = gettime_ns();
                 sampledata->counter = samples;
 
-                if (!of && (access(arg_output_path, R_OK|W_OK|X_OK) == 0)) {
-                        t = time(NULL);
-                        r = strftime(datestr, sizeof(datestr), "%Y%m%d-%H%M", localtime(&t));
-                        assert_se(r > 0);
-
-                        snprintf(output_file, PATH_MAX, "%s/bootchart-%s.svg", arg_output_path, datestr);
-                        of = fopen(output_file, "we");
-                }
-
                 if (sysfd < 0)
                         sysfd = open("/sys", O_RDONLY|O_CLOEXEC);
 
@@ -457,9 +448,9 @@ int main(int argc, char *argv[]) {
         ps = ps_first;
         while (ps->next_ps) {
                 ps = ps->next_ps;
-                if (ps->schedstat)
+                if (ps->schedstat >= 0)
                         close(ps->schedstat);
-                if (ps->sched)
+                if (ps->sched >= 0)
                         close(ps->sched);
                 if (ps->smaps)
                         fclose(ps->smaps);