]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
dmesg: add --syslog to force to old syslog(2) interface
authorKarel Zak <kzak@redhat.com>
Thu, 19 Jul 2012 16:35:20 +0000 (18:35 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 19 Jul 2012 16:35:20 +0000 (18:35 +0200)
... just for debugging or for people who somehow depends on syslog(2)
behavior.

Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/dmesg.1
sys-utils/dmesg.c

index 5bb0dd2dde6ac5511dfbde4097f90b6a1e2f11ed..8e6088e499c33053b828bc145f0b109ed7c064a9 100644 (file)
@@ -98,6 +98,13 @@ will
 print or clear the kernel ring buffer.
 .IP "\fB\-r\fR, \fB\-\-raw\fR"
 Print the raw message buffer, i.e., do not strip the log level prefixes.
+.IP "\fB\-S\fR, \fB\-\-syslog\fR"
+Force to use
+.BR syslog(2)
+kernel interface to read kernel messages. The default is to use /dev/kmsg rather
+than
+.BR syslog(2)
+since kernel 3.5.0.
 .IP "\fB\-s\fR, \fB\-\-buffer-size \fIsize\fR
 Use a buffer of
 .I size
index 9606f0fcde1d05a0bcf1d5f7450470a8a9884fcc..0bf47a11d3d5cd6044c32a1a6054169a4ad43fc8 100644 (file)
@@ -177,6 +177,7 @@ static void __attribute__((__noreturn__)) usage(FILE *out)
                " -l, --level <list>          restrict output to defined levels\n"
                " -n, --console-level <level> set level of messages printed to console\n"
                " -r, --raw                   print the raw message buffer\n"
+               " -S, --syslog                force to use syslog(2) rather than /dev/kmsg\n"
                " -s, --buffer-size <size>    buffer size to query the kernel ring buffer\n"
                " -T, --ctime                 show human readable timestamp (could be \n"
                "                             inaccurate if you have used SUSPEND/RESUME)\n"
@@ -716,7 +717,7 @@ int main(int argc, char *argv[])
        static struct dmesg_control ctl = {
                .filename = NULL,
                .action = SYSLOG_ACTION_READ_ALL,
-               .method = DMESG_METHOD_SYSLOG,
+               .method = DMESG_METHOD_KMSG,
                .kmsg = -1,
        };
 
@@ -742,6 +743,7 @@ int main(int argc, char *argv[])
                { "help",          no_argument,       NULL, 'h' },
                { "kernel",        no_argument,       NULL, 'k' },
                { "level",         required_argument, NULL, 'l' },
+               { "syslog",        no_argument,       NULL, 'S' },
                { "raw",           no_argument,       NULL, 'r' },
                { "read-clear",    no_argument,       NULL, 'c' },
                { "show-delta",    no_argument,       NULL, 'd' },
@@ -757,7 +759,7 @@ int main(int argc, char *argv[])
        textdomain(PACKAGE);
        atexit(close_stdout);
 
-       while ((c = getopt_long(argc, argv, "CcDdEF:f:hkl:n:rs:TtuVx",
+       while ((c = getopt_long(argc, argv, "CcDdEF:f:hkl:n:rSs:TtuVx",
                                longopts, NULL)) != -1) {
                switch (c) {
                case 'C':
@@ -810,6 +812,9 @@ int main(int argc, char *argv[])
                case 'r':
                        ctl.raw = 1;
                        break;
+               case 'S':
+                       ctl.method = DMESG_METHOD_SYSLOG;
+                       break;
                case 's':
                        ctl.bufsize = strtou32_or_err(optarg,
                                        _("invalid buffer size argument"));