No final da "seqüência de inicialização" 1 , vejo uma longa série de mensagens de diagnóstico voar muito rapidamente, logo antes de ver o prompt de login 2 .
AFAICT, a maioria, se não todas, as linhas que compõem essa saída de curta duração começam com uma das strings mostradas abaixo
[ OK ]
[FAILED]
... onde o OK
está em verde e o FAILED
está em vermelho 3 .
Estas mensagens piscam muito brevemente para eu ler.
Minha pergunta é:
Is there a way to make these messages easier to read?
Possíveis soluções que vêm à mente incluem (em ordem de preferência):
- teeing (ou simplesmente redirecionando) essas mensagens verbatim 4 para algum arquivo de log persistente;
- ativando um mecanismo de tipo de paginação (
Press any key to continue...
);
- inserindo uma pausa (de comprimento configurável) após essas mensagens serem impressas;
- ativando alguma tecla (ou combinação de teclas) para pausar a saída para a tela 5 .
EDIT: com base nos comentários que recebi até agora, devo concluir que a palavra textual em (1) acima não está sendo entendida, ou não está sendo levada a sério, embora eu tenho enfatizado o máximo que posso. Eu faria flash se eu pudesse ...
EDIT2: a sugestão que meuh deu nos comentários parece promissora para mim, mas eu não consegui para fazê-lo funcionar ainda. Aqui está o que eu fiz:
Primeiro, adicionei o seguinte no final de /etc/rsyslog.conf
:
# Save boot messages also to boot.log
local7.* /var/log/boot.log
... e reiniciado. Eu vi as mensagens de diagnóstico habituais voarem, mas nenhum arquivo /var/log/boot.log
foi criado.
Em seguida, no evento (reconhecidamente improvável) em que o /var/log/boot.log
precisa existir antes de o rsyslog
poder gravar nele, executei (como root):
touch /var/log/boot.log
chgrp adm /var/log/boot.log
chmod 640 /var/log/boot.log
... onde os comandos chgrp
e chmod
pretendiam que a propriedade e as permissões de /var/log/boot.log
correspondessem às de todos os outros arquivos de log em /var/log
. Então eu reiniciei, vi as mensagens, etc. O arquivo /var/log/boot.log
permaneceu vazio após esta reinicialização.
(recebi o mesmo não resultado quando alterei as permissões de /var/log/boot.log
para 666
.)
Eu grep
'editei a saída de journalctl --boot
e os arquivos em /var/log
para qualquer coisa que eu pudesse pensar que apontasse algo errado para meu rsyslog
, mas não encontrei nada. (Eu não estou familiarizado com rsyslog
, então tenho certeza que minha busca foi muito ineficaz.)
É claro que o que eu fiz até agora não é suficiente para permitir o registro desejado. Agora estou procurando o que quer que esteja faltando. Eu não consegui encontrar muita documentação relevante, no entanto. Por exemplo, nem rsyslog.conf(5)
nem rsyslogd(8)
se digna a explicar o que é local7
( rsyslog.conf(5)
é pelo menos gentil o suficiente para mencioná-lo uma vez, sem fornecer mais nenhuma informação).
EDIT3
Informações sobre distro:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.3 (jessie)
Release: 8.3
Codename: jessie
$ uname -a
Linux myhost 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
EDIT4
Informações adicionais potencialmente relevantes:
$ cat /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Requires=syslog.socket
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/
[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n
StandardOutput=null
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=syslog.service
$ cat /proc/$(pgrep rsyslogd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 128529 128529 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 128529 128529 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
$ sudo ls /proc/$(pgrep rsyslogd)/fd | wc -l
10
1 ou seja o que acontece quando eu (re) inicializo minha máquina.
2 FWIW, multi-user.target
é meu padrão.
3 O texto restante é todo em branco sobre um fundo preto. Isso é verdade no prompt de login subseqüente.
4 Eu acho completamente inaceitável qualquer solução que não me deixe ver o texto exato dessas mensagens como elas apareceram durante a sequência de inicialização. Como, invariavelmente, eu não estou intimamente familiarizado com o que qualquer uma dessas mensagens de diagnóstico está referindo, não é possível reconhecer todas as maneiras pelas quais as informações subjacentes transmitidas pela mensagem original podem ser parafraseadas, espalhadas por várias outras mensagens. , incluído em outras mensagens, etc. (Apenas pesquisando on-line para o texto exato da mensagem original eu tenho alguma esperança de encontrar uma solução para o problema.) Tudo que eu tentei até agora, incluindo journalctl -b
e dmesg
falhou em me dar as mensagens originais verbatim . Por exemplo, quando executo a inicialização, só vejo um vermelho FAILED
, mas journalctl --boot | grep FAILED | wc -l
retorna 0
e journalctl --boot | grep -i FAILED | wc -l
retorna 1086
. Nenhum destes é o que eu estou procurando.
5 No meu sistema, eu teria menos de um segundo para pressionar essa tecla ou combinação de teclas, e não há nenhum aviso de quando este breve intervalo começa. A menos que seja possível configurar a duração do intervalo durante o qual esse pressionamento de tecla deve acontecer, qualquer solução baseada em pressionamento de tecla é muito pouco prática para ser algo mais do que uma manobra de último recurso. Além disso, FWIW, tentei pressionar a tecla Scroll
Lock ou a tecla Pausa / Interrupção quando as mensagens piscaram, mas nenhuma delas fez qualquer diferença. / sup>