Просто заставь это @ # $% работать
- Вы хотите напечатать вывод dmesg, постоянно, немедленно
- Dmesg печатает кольцевой буфер ядра (см.
man dmesg)
- Кольцевой буфер ядра - это специальный файл proc,
/proc/kmsg(см. man proc)
- Читайте
/proc/kmsgнапрямую, то есть cat /proc/kmsg.
Теперь, если вы прочитаете руководство по дружественному процессу, оно будет строго предупреждать вас о том, чтобы разрешить чтение только одному пользователю (который должен быть привилегирован) /proc/kmsgза раз. Независимо от того, какая у вас реализация системного журнала, вы должны это делать, и, вероятно, она работает dmesg. Я не знаю, я вне моей лиги здесь, просто перефразируя руководство. Так что, хотя это и есть способ "просто заставь это @ # $% ing работать", сначала рассмотрим следующие несколько методов.
Утверждена справочная страница: watch + dmesg
В Arch gnu / linux с systemd init * dmesg.log записывается не очень часто, а может, и вовсе? Лучший способ непрерывного чтения буфера журнала ядра - это watch. Как-то так должно начаться (настройте количество строк в вашем терминале):
watch 'dmesg | tail -50'
смотреть + dmesg + демон + tail -f
Более замысловатое решение может использовать watch для записи вывода dmesg в файл, что вы можете затем сделать tail -f. Вы, вероятно, хотели бы, чтобы это работало как демон. Надлежащий демон также будет gzip и вращать журналы. Следующий код bash является непроверенным, неработающим и предназначен только для передачи идеи. Ответ @Brooks Моисея имеет рабочую версию .
watch 'dmesg >> /var/log/dmesg.log | tail -1'
* tangent, потому что это вопрос осса, но когда systemd рядом, не беспокойтесь dmesg, используйте journalctl -xf(возможно, w /, -n 100чтобы также показать предыдущие 100 строк)