procd has the habit of logging startup/shutdown via
rcS to syslog, which is pointless in case of a
shutdown, and unlikely to be complete on a startup
(as syslog is not running). Write to /dev/console
instead.

Signed-off-by: Michel Stam <m.s...@fugro.nl>
---
 rcS.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/rcS.c b/rcS.c
index 4545621..e01fc49 100644
--- a/rcS.c
+++ b/rcS.c
@@ -18,10 +18,11 @@
 
 #include <libubox/uloop.h>
 #include <libubox/runqueue.h>
+#include <fcntl.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
-
+#include <paths.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <glob.h>
@@ -43,8 +44,9 @@ struct initd {
 static void pipe_cb(struct ustream *s, int bytes)
 {
        char *newline, *str;
-       int len;
+       int len, console_fd;
 
+       console_fd = open(_PATH_CONSOLE, O_WRONLY | O_NOCTTY | O_NONBLOCK);
        do {
                str = ustream_get_read_buf(s, NULL);
                if (!str)
@@ -52,11 +54,11 @@ static void pipe_cb(struct ustream *s, int bytes)
                newline = strchr(str, '\n');
                if (!newline)
                        break;
-               *newline = 0;
                len = newline + 1 - str;
-               syslog(0, "%s", str);
+               write(console_fd, str, len);
                ustream_consume(s, len);
        } while (1);
+       close(console_fd);
 }
 
 static void q_initd_run(struct runqueue *q, struct runqueue_task *t)
-- 
1.7.12.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to