मैं कमांड लाइन से dmesg को कैसे लिख सकता हूं?


42

मैं dmesg को एक स्टेटमेंट लिखना चाहूंगा। [मैं यह कैसे कर सकता हूँ?


1
तुम ऐसा क्यों करना चाहते हो?
Nils

21
फर्क पड़ता है क्या? :)
२३:

8
दो कारणों से पहले मैं ऐसा करना चाहता था: (1) यह देखने के लिए कि "अब क्या है" dmesg-timestamp प्रारूप में, और (2) यह जानने के लिए कि मैंने आखिरी बार dmesg को देखा था।
notlesh

मुझे यकीन है कि nowबूट से सेकंड है, और मुझे लगता है कि इसे लिखने के लिए कर्नेल कॉल लगता है ताकि उपयोगकर्ता प्रोग्राम नहीं कर सके।
केविन

2
@ केविन, तो आप यह देखे बिना कि आपने बूट होने के बाद कितने सेकंड बीते हैं?
notlesh

जवाबों:


39

लिखें /dev/kmsg( /proc/kmsg@ निल्स द्वारा सुझाए अनुसार नहीं )। देखें गिरी साइड कार्यान्वयन के लिए और उपयोग का एक उदाहरण के लिए।linux/kernel/printk/printk.c devkmsg_writevsystemd/src/journal/journald-kmsg.c server_forward_kmsg


यह गैर-रूट उपयोगकर्ताओं के लिए कुछ सिस्टम पर अनुमति नहीं है। (जैसे: एंड्रॉयड गिरी) :-(
pevik

10
जैसेdate | sudo tee /dev/kmsg
संमई


2

ऐसा करने के लिए कोई और नहीं आधिकारिक रूप से आता है ...

आप एक कर्नेल मॉड्यूल लिख सकते हैं जो printkफ़ंक्शन को कॉल करता है। यहाँ एक उदाहरण है जो सिर्फ आपके लिए काम कर सकता है।


8
ए। कोई ज़रूरत नहीं, दूसरों को यह पहले से ही लिखा है (उदाहरण के लिए kecho )। ख। वास्तव में एक अतिरिक्त मॉड्यूल की आवश्यकता नहीं है, मेरा उत्तर देखें।
ईपीमिएंट

-1

अगर मुझे समझ में आ गया है कि आदमी ठीक से काम कर रहा है , तो आपको लिखने / खरीदने / खरीदने के लिए सक्षम होना चाहिए ।


4
# इको ​​"टेस्ट" >> >> / proc / kmsg [yields =>] -su: echo: write एरर: इनपुट / आउटपुट एरर
notlesh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.