Zwei Gründe, warum ich das schon einmal machen wollte: (1) um zu sehen, was "jetzt" im dmesg-timestamp-Format ist, und (2) um zu wissen, wann ich mich das letzte Mal mit dmesg befasst habe.
notlesh
Ich bin mir ziemlich sicher, dass nowSekunden nach dem Booten vergangen sind, und ich denke, dass ein Kernel-Aufruf erforderlich ist, um darauf zu schreiben, sodass ein Userland-Programm dies nicht kann.
Kevin
2
@ Kevin, wissen Sie also, ohne nachzusehen, wie viele Sekunden seit dem Booten vergangen sind?
ein. Keine Notwendigkeit, andere haben es bereits geschrieben (zB kecho ). b. Wirklich keine Notwendigkeit für ein zusätzliches Modul, siehe meine Antwort.
ephemient
-1
Wenn ich man dmesg richtig verstanden habe , solltest du in der Lage sein, nach / proc / kmsg zu schreiben .
now
Sekunden nach dem Booten vergangen sind, und ich denke, dass ein Kernel-Aufruf erforderlich ist, um darauf zu schreiben, sodass ein Userland-Programm dies nicht kann.Antworten:
Schreiben Sie an
/dev/kmsg
(nicht/proc/kmsg
wie von @ Nils vorgeschlagen ). Siehe für die kernseitige Implementierung und ein Anwendungsbeispiel.linux/kernel/printk/printk.c
devkmsg_writev
systemd/src/journal/journald-kmsg.c
server_forward_kmsg
quelle
date | sudo tee /dev/kmsg
für BSDs
(mit freundlicher Genehmigung von Ian, freebsd-questions mailing list )
für Linux
quelle
Vorausgesetzt, niemand anderes hat einen offiziellen Weg gefunden, dies zu tun ...
Sie können ein Kernelmodul schreiben, das die
printk
Funktion aufruft . Es gibt hier ein Beispiel , das vielleicht genau das Richtige für Sie ist.quelle
Wenn ich man dmesg richtig verstanden habe , solltest du in der Lage sein, nach / proc / kmsg zu schreiben .
quelle