Am'm scris un driver de dispozitiv care imprimă mesaj de eroare în inel tampon dmesg de ieșire.
Vreau să văd de la dmesg
cum se schimbă.
Cum pot face asta?
Relativ recent dmesg
versiuni oferi o urmeze opțiune (-w
, - urmați -
) care funcționează în mod analog cu tail-f
.
Astfel, trebuie doar să utilizați următoarea comandă:
$ dmesg -wH
(-H
, uman
permite user-friendly caracteristici, cum ar fi culori, timp relativ)
Aceste opțiuni sunt disponibile, de exemplu, în Fedora 19.
Puteți utiliza "ceas", comanda care este destinat exact pentru astfel de lucruri
watch -n 0.1 "dmesg | tail -n $((LINES-6))"
a $((LINII-6))
parte ar trebui să se potrivi frumos în terminal.
puteți't într-adevăr monitoriza de la dmesg
direct.
cu toate acestea, sunt șanse mari ca modulul tau nu este imprimarea direct în ring-tampon de dmesg, dar în schimb folosește kernel facilitățile de înregistrare (care va fi atunci afișat de dmesg
). dacă syslog
are unele normal (de exemplu, default) setări, aceste mesaje vor cel mai probabil, de asemenea, a apărut în anii kern.log
logfile.
astfel încât să puteți face ceva de genul:
tail -f /var/log/kern.log
Utilizați dmesg
pentru a primi mesaje de log de kernel.
Kernel-ul în sine jurnalele într-un inel tampon, adică doar în memorie.
Acum toate dmesg
nu este ieșire conținutul de acel inel tampon.
Dacă faci dmesg -c
- l va șterge, de asemenea, inel tampon după aceea.
Prin urmare, ai putea face ceva de genul în timp ce adevărat; nu dmesg -c; somn 1; făcut să am ceva de genul echivalentul a un nu funcționează
dmesg|tail`. Dar acest lucru șterge tampon inel și, prin urmare, are nevoie de root puteri.
Un alt mod este fișierul /proc/kmsg
care permite o vedere de pe inel tampon. Ai putea face tail-f /proc/kmsg
, dar acest lucru este de a permite doar pentru un singur proces, iar acest lucru este, de obicei, exploatarea daemon. - L's de locuri de muncă este de a citi mesajele și scrie-l la real fișiere (de obicei în /var/log) în cazul în care acestea pot fi citite. Acesta poate fi configurat pentru ieșire toate mesajele într-un singur fișier sau diferite părți în diferite fișiere. (Dar de configurare depinde de logare daemon sistemului dumneavoastră.)
Prin urmare, au o privire la /var/log
dacă există orice fișier care se potrivește nevoilor dumneavoastră și configura logare daemon altfel.
Dacă utilizați un sistem încorporat busybox care este comună pe sisteme ca OpenWRT are funcționalitate limitată și doar 2-3 steaguri sunt acceptate.
Dacă vrei un mod rapid și murdar mod de imprimare dmesg de ieșire pe ecran continuu ca evenimente schimbare, un simplu bash buclă funcționează bine. L's nu este ideal, dar după cum am menționat BusyBox dmesg lipsește o mulțime de funcții. Am găsit următoarele are același efect atunci când a intrat în linia de comandă:
$ while true; do dmesg -c ; sleep 1 ; done
puteți ieși din bucla cu Ctrl-C somn 1 este de a opri battering CPU inutil, și -c steagul respinga tampon pe fiecare apel, astfel încât să don't vedea repetate de ieșire în fiecare secundă,