MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20090625121531_705979872_20090625121450_342713463_sl_sync.png

Dedicare un terminale ai messaggi del kernel

a cura di masterz3d
17/12/2009 - articolo
Linux & Open Source - Se volete "ammucchiare" i messaggi del kernel in un terminale dedicato, o se vi da fastidio che ogni tanto Linux si impadronisca per qualche istante della shell che state usando per dire cose che non vi interessano minimamente, potete provare a usare questa procedura.

Scommetto che vi sarà capitato qualche volta, mentre stavate facendo qualche cosa con un terminale virtuale (quelli che raggiungete premendo Ctrl+Alt+FX, dove X è un numero che in genere va da 1 a 6, ma dipende da quello che c'è scritto in /etc/inittab), che vi saltassero fuori cose come questa:

Syslogconf_edit00.png

Insomma, voi siete lì che lavorate e magari state imparando come funziona la shell di Linux ma, quando inserite, chessò, una penna USB, vi si riempie il terminale di messaggi indesiderati che voi a stento capite.

Ebbene, a questo esiste una soluzione che potete usare anche subito ed è di facile implementazione.

Nota: Questo procedimento funziona solo per syslog, il logger più diffuso nelle distribuzioni moderne; Questo procedimento NON INTACCA dmesg o /var/log/messages, il log di default di Linux.

Syslogd, il demone "messaggero"

Gli "sproloqui" del kernel sono causati da una poco attenta configurazione di syslogd, un demone di log molto comune nelle distribuzioni moderne.

Syslogd intercetta i messaggi provenienti da alcuni ambienti (chiamati in gergo facilities, che possono essere facility di mail, il kernel, cron o le stampanti) e li deposita in posti prestabiliti. Il bello è che questi "luoghi" possono essere sia i file che i terminali, o anche nessuna parte.

Può capitare che ci siano alcune distribuzioni (come, a volte, la Ubuntu) che "spalmino" i messaggi di Linux per i terminali, senza un senso particolare. Ma a volte questa pratica è piuttosto fastidiosa per l'utente finale... però potrebbero esserci alcuni terminali che non vengono utilizzati fin da subito. E allora sfruttiamo uno di questi terminali liberi per dire a syslogd dove vogliamo che i messaggi del kernel vadano a raggrupparsi.

Terminali a go-go

La fila di tasti più in alto sulla tastiera del vostro computer è occupata dai cosiddetti FX (ho già spiegato che X è un numero che parte da 1 e, sulla tastiera, arriva fino a 12, ovvero F1, F2, F3, F4, F5... fino a F12), che in Linux sono molto usati per viaggiare da un terminale all'altro. In ambienti standard i terminali dove è possibile accedere alla shell Linux vanno da 1 a 6 (quindi accessibili attraverso i tasti funzione da F1 a F6), mentre F7 è comunemente usato da X, ovvero l'interfaccia grafica.

I restanti terminali, da F8 a F12, sono generalmente liberi, e possiamo usarli come vogliamo.

Per esempio, esiste un modo per occuparli con ulteriori shell Bash e renderle interattive, ma qui noi vogliamo scaricarci i messaggi del kernel. Quindi scegliamo, a piacere, uno dei terminali da F8 a F12. Per esempio, prendiamo F12.

Modificare syslog.conf

Adesso apriamo il file /etc/syslog.conf come amministratori (o utenti root), anche facendo sudo nano /etc/syslog.conf, o usando editor grafici come gedit (per GNOME) o kedit o kate (per KDE).

Personalmente comunque vi consiglio di fare una copia di backup della configurazione di syslog.conf prima di procedere, più che altro per sicurezza: è semplice, basta lanciare il comando sudo cp syslog.conf{,.old} nella directory /etc.

E ora apriamo syslog.conf con nano.

Syslogconf_edit02.png

Probabilmente in distribuzioni standard troverete già una riga con su scritto

kern.*                -/var/log/kern.log

Non dovete fare altro che commentarla aggiungendoci un cancelletto all'inizio:

# kern.*                -/var/log/kern.log

E, subito sotto (o sopra) aggiungete la seguente riga:

kern.*                /dev/tty12

Abbiamo messo /dev/tty12 perché corrisponde al terminale F12 che avevamo deciso poco fa. Ma avremmo potuto mettere un terminale qualsiasi, purchè compreso tra 8 e 12. Ricordate che il numero del tasto funzione corrisponde al numero del terminale che volete utilizzare.

Adesso salvate i file con Ctrl+O e uscite da nano con Ctrl+X, o salvate e uscite dall'editor grafico che state usando. Ricordate di salvare sempre il testo come ASCII o UTF-8 (Unicode) con "Line Feed" (o LF) come terminatore di riga, altrimenti il testo potrebbe risultare illeggibile a syslogd.

Risvegliare syslogd

Non è finita qui. Dobbiamo dire al demone di syslogd di rileggere la configurazione e cominciare ad usare il terminale che gli abbiamo detto, altrimenti potrete vedere i risultati solo al prossimo riavvio.

Lanciate questo comando, sempre come root:

kill -HUP $(pidof syslogd)

Oppure

kill -HUP $(cat /var/run/syslogd.pid)

Adesso premete Ctrl+Alt+F12 (o Ctrl+Alt+<tastofunzione>, dove <tastofunzione> corrisponde al terminale che avete specificato nella configurazione) e provate ad inserire una periferica USB nel sistema, o montare un filesystem. Se avrete seguito tutto per filo e per segno vedrete una serie di righe come questa:

Syslogconf_edit03.png

Congratulazioni, avete appena piegato syslogd e /dev/tty12 al vostro volere!

In qualsiasi momento è possibile ritornare alla configurazione precedente rimettendo a posto il backup che avete fatto, oppure togliendo il cancelletto dalla riga commentata e mettendolo alla riga con /dev/tty12, e facendo rileggere la configurazione a syslogd con il comando di kill che ho scritto sopra.

Considerazioni

Dovete sapere che così è possibile consultare solo gli eventi più recenti. Per una analisi più approfondita esistono sempre gli insostituibili dmesg o /var/log/messages, rispettivamente un piccolo programma per mostrare il log del kernel a video e il log stesso del kernel, sempre consultabile tramite cat o  less.

Inoltre nel terminale scelto potrete solo vedere i messaggi del kernel e non potrete interagire in alcun modo tramite gli input come tastiera o mouse. Ma il pregio innegabile di questo metodo sarà quel pizzico di ordine in più che avrete dato al vostro sistema GNU/Linux. E un pizzico di ordine qua, un pizzico di ordine là, avrete il vostro sistema sotto controllo, il che vuol dire molto, specialmente se avete appena cominciato a studiarvelo.

Si noti che i messaggi del kernel potrebbero cambiare rispetto a quelli mostrati, a seconda della struttura del kernel stesso in fase di compilazione da parte degli sviluppatori.

Conclusioni

La gente che dice che "Linux è difficile" probabilmente non ha le idee chiare su che cosa debba fare... avete appena avuto la dimostrazione che per fare una cosa basta sapere che cosa scrivere, dove e quando. E adesso voi potrete vantarvi dicendo... "ho reindirizzato il log del kernel in tty12! "

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati