é possível filtrar o conteúdo de .xsession-errors?

0

A maioria dos arquivos .xsession-errors cresce porque o gtk e outras bibliotecas fornecem mensagens de erro tolas.

Existe uma maneira de reduzir mensagens de erro tolas, mas tem um arquivo .xsession-errors útil?

    
por jue 19.01.2016 / 00:07

1 resposta

0

sim, é possível. Esta solução foi testada com o Debian jessie e wdm como gerenciador de login.

Várias etapas são necessárias:
As etapas 8 a 10 são wdm específicas e podem parecer diferentes para gdm ou kdm

  1. faça login como root
  2. abra o arquivo /etc/X11/Xsession no editor
  3. substituir a primeira linha no arquivo
    #!/bin/sh
     com #!/bin/bash
  4. localize a linha ERRFILE=$HOME/.xsession-errors e adicione abaixo da linha ERRFILTER=$HOME/.xsession-errors_filter
  5. localize a linha exec >>"$ERRFILE" 2>&1 e substitua-a por % if [ -f $ERRFILTER ]; then exec > >(stdbuf -i0 -o0 -e0 grep -v -f "$ERRFILTER" >>"$ERRFILE") 2>&1 else exec >>"$ERRFILE" 2>&1 fi
  6. salvar arquivo e sair do editor
  7. crie um arquivo .xsession-errors_filter em seu diretório pessoal e escreva palavras-chave de mensagens de erro que você não deseja ver. Apenas uma palavra-chave / frase por linha é permitida.
  8. abrir arquivo / etc / X11 / wdm / Xsession
  9. localize a linha . /etc/X11/Xsession e substitua-a por exec /etc/X11/Xsession
  10. salvar arquivo
  11. verifique se tudo está correto porque o X11 pode não ser iniciado de outra forma
  12. logout e login no X

alguma explicação:

  • precisamos de bash para esse tempo de redirecionamento para a substituição de / bin / sh e a mudança de . (source) para exec
  • então usamos invertido grep para filtragem. grep está lendo as palavras-chave de filtro do arquivo '.xsession-errors_filter'
  • stdbuf desativa o buffer com o grep, então as mensagens de erro são gravadas instantaneamente no arquivo
  • exec > >() redireciona toda a saída do shell para um subshell (que executa grep)
por 19.01.2016 / 00:37

Tags