Можно ли предотвратить появление сообщений ядра в выводе dmesg?
Например, я использую программу, которая завершает туннели PPPoE. Одна из предоставляемых им функций - возможность задавать собственные имена интерфейсов. https://github.com/torvalds/linux/blob/v4.16/net/core/dev.c#L1204
Проблема с этими сообщениями в том, что они заполняют буфер и отменяют любые другие важные сообщения (сбои драйвера, предупреждения iptable и т. д.).
Можно ли запретить отображение этого конкретного сообщения в выводе dmesg?
Я попытался установить sysctl kernel.printk, но похоже, что это не действует, и появляются сообщения в выводе dmesg независимо от настроек.
Спасибо.
Эта функция netdev_info печатает сообщения ядра через принтер на уровне INFO. Я полагаю, что вы можете настроить ваш kernel.printk
для контроля уровня сообщений, которые фактически регистрируются. Таким образом, вы можете настроить вниз от уровня INFO до менее шумных уровней WARN или ERR.
Обычно я предпочитаю использовать это 3 4 1 3
по умолчанию
# /etc/sysctl.d/printk.conf
# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3
Смотрите эти ссылки для получения более подробной информации о kernel.printk
Это будет подавлять больше, чем только это конкретное сообщение. Если у вас есть другая информация, записываемая на уровне INFO, которую вы на самом деле хотите или хотите увидеть, это может быть не лучшим решением.
Если вас волнует только то, что регистрируется в ваших журналах, управляемых syslog, то вы должны быть в состоянии применить фильтры в зависимости от того, какой демон syslog вы используете.
.dmesg
читает из кольцевого буфера ядра и, насколько я могу судить, вы не можете предотвратить его "загрязнение" от нежелательных сообщений.
В любом случае, в зависимости от вашего дистрибутива, старые лог-файлы ядра можно найти в /var/log/messages
или /var/log/syslog
.