Просто заставь это @ # $% работать
- Вы хотите напечатать вывод 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 строк)