Де розташований буфер кільця ядра відносно rsyslog?


9

Це rsyslogлише абстракційний шар поверх буфера кільця ядра? Або буфер кільця ядра є власною сутністю, і rsyslogвзаємодія подібна до будь-якої іншої "програми"?

logs  syslog  dmesg 

Відповіді:


6

Хоча різні фрагменти документації (у тому числі man dmesg) називають її "буфером кільця ядра", можливо, було б краще позначити це буфером журналу ядра, оскільки "буфер кільця" є загальним терміном, і я вважаю, що ядро ​​також використовує кільце буфери для різних абсолютно не пов'язаних між собою речей. Буфер друку також є відповідним після функції простору ядра, що використовується для його запису.

У будь-якому випадку він знаходиться в просторі ядра, а інтерфейс для читання надається через /proc/kmsgта інтерфейс для читання-запис через /dev/kmsg. Так що якщо як root ви йдете:

echo "Hello Kernel!" > /dev/ksmg

Ви побачите це, якщо потім cat /dev/ksmg(ви, мабуть, не побачите це з'явлення в жодному журналі, однак - див. Коментар Меттью Піппса нижче щодо можливої ​​причини). Це вихідний вихід і не схожий на те, що ви бачите з dmesgабо у файлах журналу. Існує небагато документації щодо цього, наданого з джерелом ядра. Читання з /proc/kmsg(не те саме /dev/ksmg) рекомендується проти, якщо (r) syslog працює.

Rsyslog - одна з ряду реалізацій syslog, що зазвичай використовується в Linux. Ці додатки для користувача рівня , що повідомлення джерела ядра від /proc/ksmgі повідомлення від інших процесів користувацького простору через сокет, /dev/log.


2
Я зазначу, що у rsyslog за замовчуванням вимкнено $ KLogPermitNonKernelFacility, через що rsyslog повідомлення, які не містять ядро ​​з / proc / kmsg, буде ігноруватись, якщо не включити цю опцію. Це насправді може стати дуже заплутаним, оскільки Upstart, наприклад, записує в / proc / kmsg із засобом, що не має ядра.
Ванесса Фіппс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.