कर्नेल रिंग बफर rsyslog के सापेक्ष कहां बैठता है?


9

क्या rsyslogकर्नेल रिंग बफर के शीर्ष पर सिर्फ एक अमूर्त परत है? या कर्नेल रिंग अपनी स्वयं की इकाई बफर है और rsyslogकिसी अन्य "अनुप्रयोग" की तरह बातचीत है?

logs  syslog  dmesg 

जवाबों:


6

हालाँकि प्रलेखन के विभिन्न टुकड़े (सहित man dmesg) इसे "कर्नेल रिंग बफर" के रूप में संदर्भित करते हैं, इसे कर्नेल लॉग बफर के रूप में संदर्भित करना बेहतर हो सकता है, क्योंकि "रिंग बफर" एक सामान्य शब्द है और मेरा मानना ​​है कि कर्नेल भी रिंग का उपयोग करता है विभिन्न पूरी तरह से असंबंधित चीजों के लिए बफ़र्स। "प्रिंटक बफर" भी उपयुक्त है, कर्नेल स्पेस फ़ंक्शन को लिखने के लिए उपयोग करने के बाद।

वैसे भी, यह कर्नेल स्पेस में रहता है और एक रीड इंटरफेस के माध्यम से /proc/kmsgऔर रीड-राइट इंटरफेस के माध्यम से प्रदान किया जाता है /dev/kmsg। तो अगर जड़ के रूप में तुम जाओ:

echo "Hello Kernel!" > /dev/ksmg

आप इसे देखेंगे अगर आप तब cat /dev/ksmg(आप शायद किसी भी लॉग में इस मोड़ को नहीं देखेंगे, हालांकि - मैथ्यू Phipps की टिप्पणी को एक संभावित संस्करण के लिए नीचे देखें)। यह कच्चा आउटपुट है और dmesgआपके द्वारा लॉग की गई फ़ाइलों में दिखाई देने वाले सामान की तरह बिल्कुल नहीं दिखता है । वहाँ एक छोटे से है प्रलेखन के बिट कर्नेल स्रोत के साथ प्रदान की इस बारे में। यदि (r) syslog चल रहा है, तो इसके विपरीत ( /proc/kmsgजैसा नहीं /dev/ksmg) पढ़ने की सलाह दी जाती है।

Rsyslog के एक नंबर से एक है syslog कार्यान्वयन आमतौर पर लिनक्स पर इस्तेमाल किया। ये उपयोगकर्ता के अनुप्रयोग हैं जो स्रोत से कर्नेल संदेश /proc/ksmgऔर अन्य उपयोगकर्ता प्रक्रिया से संदेश सॉकेट के माध्यम से भेजते हैं /dev/log


2
मैं बताता हूँ कि rsyslog में डिफ़ॉल्ट रूप से $ KLogPermitNonKernelFacility बंद है, यही वजह है कि जब तक आप उस विकल्प को चालू नहीं करते हैं, तब तक / खरीद / kmsg से गैर-कर्नेल संदेशों को rsyslog द्वारा अनदेखा कर दिया जाएगा। यह वास्तव में वास्तव में भ्रमित हो सकता है, क्योंकि उपस्टार्ट, उदाहरण के लिए, गैर-कर्नेल सुविधा के साथ / proc / kmsg में लॉग करता है।
वैनेसा फिप्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.