предотвратить появление сообщений ядра на экране терминала /dev/tty1

Вопрос или проблема

Сообщение уровня отладки ядра

watchdog : BUG: soft lockup – CPU#0 stuck for 22s!

появляется в моей консоли (/dev/tty1), и я пытаюсь предотвратить это.

Я попробовал следующие 3 метода, но ни один из них не сработал:

  1. Я установил kernel.printk = 1 1 1 1 в файле /etc/sysctl.conf. Выполнив sysctl kernel.printk из командной строки, я могу утверждать, что значения верны.
  2. Запустил dmesg -n 1 и dmesg -D (консоль выключена)
  3. Попробовал установить значения ForwardToConsole=no и TTYPath=/dev/tty2 ForwardToWall=no в файле /etc/systemd/journald.conf

Ничто из этого не помогло, и журнал ядра все еще выводится на мой терминал.

Чего не хватает? Я использую Ubuntu 18.04.

К сожалению, я неправильно понял уровень приоритета этого сообщения журнала из-за слова “BUG” в нем. Я думал, что это сообщение отладки с приоритетом 7. Однако, когда я проверил с помощью команд “journalctl -k -p 0” и “dmesg –level=emerg”, я увидел, что уровень приоритета сообщения равен нулю.

Таким образом, установка kernel.printk = 0 0 0 0 в файле /etc/sysctl.conf решила проблему.

Ответ или решение

Отключение сообщений ядра на терминальном экране Ubuntu

Проблема:
На вашем терминале (/dev/tty1) появляется сообщение ядра: watchdog: BUG: soft lockup - CPU#0 stuck for 22s!. Это говорит о том, что происходят неполадки на уровне ядра, о которых сообщается в вашей консоли. Ваша цель — предотвратить появление этих сообщений на экране.

Контекст и предпринятые меры:

  1. Изменение уровня вывода сообщений ядра

    • Вы установили kernel.printk = 1 1 1 1 в файле /etc/sysctl.conf, и командой sysctl kernel.printk подтвердили корректность значений. Однако это изменение не помогло.
  2. Команды dmesg

    • Вы использовали dmesg -n 1 для ограничения уровня важности сообщений и dmesg -D для отключения вывода на консоль. Эти методы также не помогли устранить проблему.
  3. Настройки журнала systemd

    • Вы внесли изменения в файл /etc/systemd/journald.conf, указав ForwardToConsole=no и TTYPath=/dev/tty2 ForwardToWall=no. Тем не менее, сообщения продолжали появляться.

Корень проблемы:
Вы обнаружили, что сообщения имеют уровень важности 0, что обозначает экстренные сообщения, и это уровень, при котором даже базовые настройки фильтрации сообщения не блокируют их. Использование 0 уровня важности обусловлено критичностью сообщений, несмотря на слово "BUG" в тексте.

Решение:
Установка параметра kernel.printk = 0 0 0 0 в файле /etc/sysctl.conf предотвратила вывод сообщений экстренного уровня важности на консоль. Это ограничивает все сообщения ядра, включая критические ошибки, от вывода на /dev/tty1.

Дополнительные рекомендации:

  1. Мониторинг в реальном времени — рекомендуется обратить внимание на мониторинг состояния системы, так как игнорирование сообщений об ошибках может привести к более серьезным проблемам.
  2. Анализ производительности — Во избежание частых soft lockup рекомендуется проводить диагностику нагрузки на CPU.
  3. Обновление системы — Подумайте об обновлении на более новую версию Ubuntu для получения всех системных и безопасности исправлений.

Данное решение оптимизирует ваш рабочий процесс, сохраняя терминал свободным от непредвиденного вывода сообщений ядра, однако требует внимательной работы с системной диагностикой и обслуживанием.

Оцените материал
Добавить комментарий

Капча загружается...