Dove si trova il file di registro generato da un avvio dettagliato in OS X Lion?


19

Dopo aver avviato la mia macchina in modalità dettagliata (cmd + v all'avvio), voglio visualizzare i messaggi di registro generati, per eseguire il debug di un errore che sto ricevendo ( l'errore ). L'errore viene visualizzato brevemente sullo schermo solo all'avvio, prima che la macchina si riavvii. Di conseguenza, non c'è tempo per leggerlo correttamente.

OS X fornisce un file di registro separato per i messaggi di avvio o sono sepolti nei file kernel.log e system.log? Se sono sepolti all'interno di questi file, c'è un modo rapido per saltare al punto in cui il sistema si avvia, nel visualizzatore della console?

Risposte:


3

A partire almeno da Snow Leopard e possibilmente Leopard, tutte le registrazioni sul sistema passano attraverso il meccanismo Apple System Log (ASL), che è come un demone centrale e un database per tutti i messaggi di registro. Il demone ASL si assicura anche che i messaggi di log appropriati che soddisfano determinati criteri tradizionali vengano scritti nei file di log di testo tradizionali come system.loge kernel.log, ma tutto vada anche nel database ASL.

Per ulteriori informazioni, vedere le pagine man per syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8), etc.

È possibile utilizzare syslog(1)per inviare query al database ASL. Inoltre, /Utilities/Console.appfornisce una GUI per la generazione e il salvataggio di query personalizzate per il database ASL.

Sono abbastanza sicuro che il buffer dei messaggi del kernel (tradizionalmente visualizzato con dmesg(8)) venga scaricato nel database ASL non appena l'avvio è proceduto abbastanza lontano da syslogdessere in esecuzione, quindi non dovresti aver bisogno di chiamare dmesgdirettamente, tranne che per forza dell'abitudine. O se il tuo sistema non si avvia abbastanza lontano per syslogdessere in esecuzione.


Funziona con gli stivali precedenti? Il problema che stavo riscontrando quando ho scritto questa domanda (risolto ora, per fortuna) si stava verificando solo in modo intermittente. Quindi, diciamo, ogni altro avvio, è stato il panico del kernel per me e quello che volevo fare era il successivo avvio riuscito, rivedere il file di registro, trovare l'avvio precedente e provare ed eseguire il debug.
porpora

@purpletonic Sì, tutto ciò che viene inviato ad ASL viene inserito in un database, dove rimane per un valore predefinito di 7 giorni (questo può essere regolato con asl.conf(5)). Quindi, se avessi eseguito il debug dei problemi di avvio e riavviati più volte lo stesso giorno, sarebbero presenti lì per impostazione predefinita. E se si trattava di un problema a lungo termine, è possibile regolare il periodo di conservazione di ASL per mantenere le cose più a lungo.
Spiff

Questa risposta in realtà non dice come posso vedere l'output dal processo di avvio "dettagliato", però. Una volta avviato, dmesgmostra solo alcune voci recenti ma non il registro di avvio. Provando questo su 10.12.6, non c'è più nemmeno il file "kernel.log".
SuperTempel,

11

Apri Terminal.app ed esegui

sudo dmesg

(ti verrà chiesta la password)

Questo mostrerà i messaggi di sistema dall'ultimo avvio fino ad ora (troverai i messaggi di avvio nella parte superiore dell'output). Puoi provare

sudo dmesg | Di Più

questo produrrà quei messaggi pagina per pagina.


Bello! Userei meno invece di più, è molto più conveniente e non ingombra il tuo scrollback terminale.
SilverWolf - Ripristina Monica il

4

La risposta accettata (da Spiff) non mi è stata utile, né c'è più un kernel.log.

Ciò che funziona per me (su macOS 10.12.6) è questo comando:

log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug

Mostra tutti i msg del kernel di oggi, incluso il processo di avvio. Ha bisogno di un po 'di pulizia, ma almeno contiene tutto ciò di cui ho bisogno per trovare.


Questo funziona anche per me. Grazie. Le altre risposte mostrano cose non necessariamente legate all'avvio o non mostrano ESATTAMENTE ciò che viene stampato durante l'avvio. La tua risposta fa +1. Ed è anche un codice colore!
Max Coplan,

2

Mi chiedo come ottenere il registro più appropriato all'avvio senza accedere alla console / terminale. Si è arrestato in modo anomalo all'avvio ma è possibile ottenere l'accesso al file system tramite il disco di installazione (avevo un doppio avvio di Linux disponibile). Il file è:

/var/log/kernel.log

Se è possibile accedere alla console all'interno del sistema operativo, è meglio seguire gli altri suggerimenti e utilizzare i comandi appropriati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.