savetextmode: diga adeus aos crashes do console [Dica]
savetextmode: diga adeus aos crashes do console
Publicado por Murilo R. Esplugues em 27/11/2004
[ Hits: 4.691 ]
Blog: http://www.helpday.blogspot.com/
Já aconteceu com você de executar um programa que faz uso do svgalib (como Mplayer, Zgv) ou até mesmo algum crash do servidor X e acabar perdendo as configurações do console, sem ter nem mesmo a possibilidade de ver algum texto ou outras coisas estranhas que deixam seu console inútil?
Infelizmente mudar para outro terminal virtual nesse caso não resolverá seus problemas e normalmente a única solução é reiniciar a máquina...
Pois saiba que existe um script provavelmente instalado por padrão na sua distribuição que pode te ajudar com isso, pelo menos no Slackware 10 tem ;- ). Caso ele não exista veremos como criá-lo e seus problemas de "incompatibilidade" romântica com o svgalib irão terminar.
Ele é o savetextmode, que na verdade é um script que faz uso dos utilitários restorefont, restoretextmode e restorepalette.
Como diz sua "man page" (man savetextmode), se você é um garoto esperto, irá rodar o savetextmode logo depois que seu sistema inicializar e ANTES de qualquer problema.
Quando o crash acontecer você terá de sair do programa que estava rodando (pressione CTRL + C), pegar um shell e digitar:
$ textmode
Pronto! Ele restaurará seu terminal a como era antes.
OK, mas lembre-se que você dará uma de demolidor aqui, por que na verdade você não verá o que está escrevendo. Se no terminal que você estava utilizando não funcionar, terá de ir para outro terminal virtual com ALT + Fx (onde x é um número entre 1 e 6), entrar com seu logon e senha (novamente as cegas), logo que você conseguir o prompt rode o comando textmode.
E tem um outro problema, às vezes esses crashes impedem você de digitar qualquer coisa com seu teclado, os casos são raros mas acontece, aí infelizmente você terá de reiniciar seu computador. Note que programas que fazem uso do svgaLib e X Window (Interface Gráfica) não são recomendados para uso em servidores, haja visto os problemas inerentes de segurança e os crashes que ocorrem de vez em quando.
Bem, sobre o script, ele guarda as configurações do seu terminal em "/tmp/fontdata" e "/tmp/textregs", também restaura suas configurações a partir daí. Segundo a manpage, mas verificando o script notei que ele apontava para o diretório "/etc/vga", sem problemas. Mas como ele funciona? Dêem uma olhada no utilitário 'savetextmode':
# savetextmode
# Apaga as conf. anteriores
rm -f /etc/vga/textregs /etc/vga/fontdata
# Guarda as conf. atuais
restoretextmode -w /etc/vga/textregs
restorefont -w /etc/vga/fontdata
Agora no seu parceiro inseparável, o textmode:
# textmode
# Restaura as configurações do terminal
restoretextmode -r /etc/vga/textregs
restorefont -r /etc/vga/fontdata
restorepalette
Simples e prático. Agora você poderá adicionar o savetextmode no arquivo de inicialização do seu sistema e quando ele for executado o vídeo piscará algumas vezes, mas lembre-se que isso é normal. Caso use Slackware adicione as seguintes linha em /etc/rc.d/rc.local:
# Guardando a conf. de vídeo
savetextmode
E no próximo crash que ocorrer no seu terminal fique tranqüilo e detone rodando textmode. Assim terá pelo menos uma boa chance de recuperá-lo. ; - )