में
/proc/kmsg
और कर्नेल प्रवेश के बारे में आप अधिक जानकारी प्राप्त करने के लिए कुछ और संसाधन हैं
इस पवन के बहुत अच्छा जवाब देने के लिए आगे है (मुझे बहुत कुछ सिखाया):
अलग distro किसी भी शारीरिक लॉग फाइल या आभासी उपकरणों के लिए/proc/kmsg के उत्पादन रीडायरेक्ट कर सकता है (/ dev/xxx) वे पसंद है। लेकिन "/ proc/kmsg" कर्नेल लॉग के मूल स्रोत है, क्योंकि गिरी अपनी अंगूठी बफर आपरेशन लागू है अंदर FS/proc/kmsg.c:
static const struct file_operations proc_kmsg_operations = {
.read = kmsg_read,
.poll = kmsg_poll,
.open = kmsg_open,
.release = kmsg_release,
.llseek = generic_file_llseek,
};
तो आप कैसे देखते हैं उत्पादन यह है:
sudo पूंछ -f/proc/kmsg
लेकिन आप केवल सभी संदेशों को उत्पन्न करने के बाद आप इस आदेश जारी किए गए हैं देख सकते हैं - अंगूठी बफर के सभी पिछले संदेश मुद्रित नहीं किया जाएगा। और इसलिए भौतिक फ़ाइल आउटपुट देखने के लिए, आप "/ proc/kmsg" के उपयोगकर्ता की खोज कर सकते हैं:
sudo lsof | grep proc।
rsyslogd 1743 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
in:imuxso 1743 1755 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
in:imklog 1743 1756 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
rs:main 1743 1757 syslog 3r REG 0,3 0 4026532041 /proc/kmsg
तो अब यह पीआईडी 1743 है, देखते हैं फ़ाइलों 1743 द्वारा खोला एफडी करते हैं:: kmsg
और मेरे मशीन इस संकेत दिया
sudo ls -al/proc/1743/fd
lrwx------ 1 root root 64 Dec 11 08:36 0 -> socket:[14472]
l-wx------ 1 root root 64 Dec 11 08:36 1 -> /var/log/syslog
l-wx------ 1 root root 64 Dec 11 08:36 2 -> /var/log/kern.log
lr-x------ 1 root root 64 Dec 11 08:36 3 -> /proc/kmsg
l-wx------ 1 root root 64 Dec 11 08:36 4 -> /var/log/auth.log
और इसलिए वहाँ तुम जाओ, पीआईडी 1743 rsyslogd है, और यह/var/log/syslog और /var/log/kern.log आदि
की तरह फाइलों को/proc/kmsg के उत्पादन अनुप्रेषित 10
कमाल! बहुत ही पेशेवर और सहायक उत्तर! आप देखते हैं, मैं लिनक्स कर्नेल प्रोग्रामिंग के लिए सिर्फ एक नया कॉमर हूं, मैं आपकी मदद की अधिक सराहना नहीं कर सकता। आपको धन्यवाद। –
खुशी है कि मैं आपकी मदद कर सकता हूं :) एसओ में आपका स्वागत है! –