我正在学习journald
和rsyslog
阅读时我看到可以rsyslog
从/dev/kmsg
和 中journald
读取/dev/kmsg
和/proc/ksmg
。
我知道这些都是内核日志,但是/proc/kmsg
和之间有什么区别/dev/kmsg
?为什么一个看起来是一个进程而另一个看起来是一个设备?
Ste*_*itt 21
/proc/kmsg
提供内核日志缓冲区的仅根、只读、消耗视图。相当于syslog(2)
用SYSLOG_ACTION_READ
动作调用。如联机帮助页中所述proc
,
一个进程必须有超级用户权限才能读取这个文件,而且只有一个进程可以读取这个文件。如果正在运行使用
syslog(2)
系统调用工具记录内核消息的系统日志进程,则不应读取此文件。
/dev/kmsg
提供对相同内核日志缓冲区的访问,但以更易于使用的方式。每次打开都会跟踪读取,因此多个进程可以并行读取,并且在读取条目时不会从缓冲区中删除条目。/dev/kmsg
还提供对日志缓冲区的写访问,因此可用于向日志缓冲区添加条目。请参阅该/dev/kmsg
文档的详细信息。
至于为什么两个都存在,为什么一个是/proc
(虽然不是过程相关的),一个在dev
,/proc/kmsg
是内核内部的一个旧方便“出口”,而且/dev/kmsg
是一个更近此外,设计成一个易用的界面到日志缓冲区.