Я использую Debian wheezy. Многие скрипты /etc/init.d/
используют различные функции журналирования, определенные вСтандартная база Linux, например log_success_msg
и log_warning_msg
. Документация LSB кажется немного двусмысленной относительно того, что именно должны делать эти функции:
Функция log_success_msg заставит систему записать сообщение об успешном завершении в неуказанный файл журнала. Формат сообщения не указан. Функция log_success_msg также может записать сообщение в стандартный вывод.
Однако я предполагаю, что это интерпретируется как то, что функции могутилизаписать в файл журналаилипросто пишите в стандартный вывод. Кажется, что на Debian, по крайней мере, этотолькоприводит к записи сообщения в стандартный вывод. Мои подозрения подтвердились, когда я проверил файл, определяющий эти функции, /lib/lsb/init-functions
- он просто вызывает echo
отображение любого сообщения журнала.
Это бесполезное поведение. Текст, выводимый при загрузке на стандартный вывод, исчезает вскоре после завершения загрузки и в любом случае может оказаться за пределами верхней части экрана. Конечно, было бы гораздо полезнее, если бы эти сообщения действительно сохранялись в файле журнала; на самом деле, я даже не вижу смысла регистрировать что-либо с помощью этих функций, если они будут отправляться только на стандартный вывод.
Есть ли способ записать эти логи в файл? Может ли кто-нибудь объяснить мне, зачем вам вообще "журналировать" что-либо только в стандартный вывод? Какую полезную функцию это выполняет?
решение1
Похоже, что решение — установить bootlogd
и разместить
BOOTLOGD_ENABLE=yes
в /etc/default/bootlogd
.
Использованная литература: