Se você é daqueles que gosta de praticidade, aqui vai um truque legal para agilizar o desligamento do computador.
Quem aqui não tem o costume de ligar o PC com o dedão do pé? E por quê não usar este mesmo processo no desligamento?
Antes de tudo, o processo descrito a seguir funciona em placas mãe com fonte ATX. Todos nós sabemos que não é muito legal fazer isso com fontes AT. Afinal, as primeiras surgiram para isso mesmo, não?
Nota: Esta dica foi testada no Slackware 11.0 e com algumas modificações, certamente funcionará em outras distros.
Bem, primeiro, tenha certeza de estar com o kernel compilado com suporte a acpi ou com esse módulo compilado.
Se você estiver usando o kernel original do Slackware, que já tem suporte a acpi como módulo, basta adicionar a seguinte linha no arquivo /etc/rc.d/rc.modules:
/sbin/modprobe button
Se você está com o kernel compilado já com suporte a acpi, este passo acima não são necessários - óbvio.
Em seguida, dê permissão de execução ao arquivo /etc/rc.d/rc.acpid:
# chmod +x /etc/rc.d/rc.acpid
Reinicie o computador.
Nota: Para isso, tenha certeza de estar com o pacote acpid corretamente instalado. Se você fez a instalação full, ele está. Senão, procure no cd de instalação do Slackware.
Pronto! Aperte o botão power do gabinete do seu computador e voiala... Ele explode!!! Brincadeira. Ele simplesmente é desligado, executando todas as tarefas necessárias (desmontar partições, finalizar serviços, etc).
Bem, agora imagine que você está fazendo algo importantíssimo no computador, e quem surge do nada? O seu irmãozinho de cinco anos, que "sem querer" aperta o botão power... Adeus o que você estava fazendo, pois não há confirmação alguma do desligamento do sistema.
Pensando nisso, eu primeiro bolei uma solução para esse problema.
Importante: Ela, por enquanto, funciona somente para usuários do ambiente gráfico KDE.
Funciona assim:
Abra o arquivo /etc/acpi/acpi_handler.sh para edição:
# vim /etc/acpi/acpi_handler.sh
Localize nele a linha 10 (:10) e deixe ela com essa cara:
Onde <usuário> é o nome de login que você usa no computador.
Salve e feche o arquivo (:x!) e reinicie o acpid:
# /etc/rc.d/rc.acpid restart
Aperte o botão power e aparecerá um diálogo perguntando se você quer desligar seu computador. Como se pode ver, essa é uma solução bem lusitana, e não é difícil perceber suas falhas:
Se você decidir um dia iniciar no modo texto, ou que não seja KDE, o botão power não servirá para nada.
Se a máquina for utilizada por mais de um usuário, esse recurso de desligar funcionará somente para um deles - o definido no arquivo.
Se tiver mais de uma sessão gráfica em execução, esse recurso de desligar funcionará somente para uma delas - a :0.
Outras falhas, que com certeza existirão, e que ajudarão a comprovar que esse método não funciona muito bem... ;)
Pensando mais um pouco, eu bolei outra solução, que embora seja muito parecida com a primeira, tem menos falhas. Ela é basicamente um script que tem a seguinte lógica, quando você aperte o power:
Se o KDM estiver em execução, então:
Se o último usuário logado pelo KDM estiver usando o KDE, então:
Executa o processo de confirmação para este usuário.
Senão, desliga pelo processo sem confirmação.
Senão, desliga pelo processo sem confirmação.
Como deu para ver, esse truque precisa do KDM para funcionar. Mas não se preocupe, pois se você usa o KDE, provavelmente está usando o KDM também.
Salve o conteúdo desta página num arquivo com o nome de acpi_handler.sh, no diretório /etc/acpi/ (antes crie uma cópia de backup do arquivo existente).
Dê permissão de execução à ele:
# chmod +x /etc/acpi/acpi_handler.sh
Em seguida, abra o arquivo /etc/acpi/events/default:
# vim /etc/acpi/events/default
E localize nele a linha 17 (:17), deixando-a assim:
event=button power.*
Salve e feche o arquivo (:x!) e reinicie o acpid:
# /etc/rc.d/rc.acpid restart
Eu ainda estou procurando um jeito de melhorar este script, mas ele já se encontra funcional, e você pode melhorá-lo, se quiser. E poste aqui no VOL. Eu cheguei até a escrever um diálogo em Tk, mas não ficou muito bom, pois é necessário usar o sudo, além de o Tk (8.5a4) estar atualmente quase tão pesado quanto um GTK+ ou Qt.
Nota: Não tenho nada contra os portugueses. "Solução lusitana" é só maneira de falar. Tudo bem?
Nota final: Eu procurei esta solução por ter visto algo assim no GDM do Ubuntu e no M$ WindowsXP. Então pensei: Se o Windows é capaz de fazer, por que não o Linux? Acredite: o Windows muitas vezes serve como fonte de inspiração. Se é bom, vamos imitar!! ;)
Muito obrigado, espero ter ajudado aos que tiveram o mesmo problema que eu, e até a próxima.
[2] Comentário enviado por tenchi em 20/01/2007 - 13:38h
... abeljnr, você tentou isso em que distro?
Tente usar o primeiro método (o lusitano) e veja se funciona. Se não funcionar, é possível que o KDM não esteja em execução.
Faça o seguinte: digite o comando num terminal gráfico (konsole, xterm, etc):
$ kdmctl list
Se este comando exibir uma saída de erro, é porque o KDM não está em execução.
Hum... o acpid está rodando corretamente?
Que runlevel do init você está usando?
Execute o seguinte comando:
$ grep initdefault /etc/inittab | cut -f2 -d:
Se a saída não for 4, é porque provavelmente o KDM não está em execução (a não ser que vc tenta modificado alguns scripts).
Enfim, detalhe melhor o erro para eu poder te ajudar, blz?
Obs: Eu estou escrevendo um outro script, para sanar as deficiencias deste que coloquei para download. Quando estiver melhor, eu posto ele aki no VOL, e vc testa, para ver se funciona melhor.
[5] Comentário enviado por tenchi em 21/01/2007 - 18:08h
Opa pessoal, valew pelos comentários...
Eu ainda estou tentando escrever uma outra versão do script que comentei aki... Eu já mandei ele pra moderação daqui do VOL (estará disponível pelo link: http://www.vivaolinux.com.br/scripts/verScript.php?codigo=2500 ).
Agora só resta ele ser publicado.
Mas eu já coloquei o conteúdo dele no seguinte link: http://www.din.uem.br/~lssilva/programs/acpi_handler-2.0.html .
Desculpem se ele não estiver muito legível (Pra um pré-programador, estar funcionando já é uma maravilha.. rsrs). Desculpem também por não colocar nenhum ToDo, nem um Changelog.. ;)
Falow...
Ah, ncionando já é uma maravilha.. rsrs). Desculpem também por não colocar nenhum ToDo, nem um Changelog.. ;)
Esse recurdo que eu usei às vezes simplismente não funciona (estou sendo sincero com vcs). Não, não é nada de errado com ele (acho), mas uma falha do KDM mesmo..rss
Para ter certeza disso, execute o comando:
$ kdmctl list
Se não aparacer nada na primeira vez qu evc executa esse comando, acreditem, esse é o erro.. rsrs
Execute esse comando até dar certo. (acho que na segunda ou terceira vez). Não sei pq isso acontece, mas às vezes acontece.
Ah acvsilva, a preguiça fala mais alto mesmo. Tem dias que a gente acorda e já liga o computador sem nem mesmo perceber. Sim... e com o dedão do pé! Felizmente a anatomia humana do dedão do pé adapta-se ergonomicamente ao botão power do gabinete... (de onde tirei isso?)..