Alterar o comportamento do botão liga / desliga do Linux


29

Eu tenho uma máquina mint linux sem cabeça que eu uso para um servidor de arquivos e outras coisas. Ele está funcionando muito bem para mim há alguns anos, mas há um problema: minha gata gosta de ficar em cima dela e, quando ela sobe e desce, ocasionalmente pisa no botão liga / desliga e desliga a máquina.

Existe uma maneira fácil de alterar o comportamento do botão liga / desliga, de modo que exija uma pressão de duração extremamente longa (10 segundos ou mais) ou várias pressionamentos para fazer alguma coisa?


Este é um desktop ou laptop? Eu estou supondo laptop se esse gato tem acesso ao botão liga / desliga.
terdon

3
É um desktop - isso é realmente relevante para uma solução de software?
schizodactyl

Heh. Não só tenho o mesmo problema, é exatamente pelo mesmo motivo. Para a pergunta de @ terdon, é uma área de trabalho, mas o botão liga / desliga está na parte superior do painel frontal, voltada para cima. É o lugar certo para um gato colocar uma pata ao pular da parte superior da caixa.
Sam Hanes 28/03

2
Se você tiver um botão de redefinição, geralmente é menor e mais difícil de pressionar. Nesse caso, você pode conectá-lo como o botão liga / desliga e desconectar o botão liga / desliga real. Isso é como eu lidar com meus problemas botão de energia gato relacionada :)
Roger Dahl

1
O mesmo problema, mas com meus filhos pressionando acidentalmente o botão
liga

Respostas:


17

Bem, uma coisa que você pode fazer é simplesmente desativar completamente o botão liga / desliga. Pessoalmente, eu apenas o uso para ligar a máquina e nunca a uso quando a máquina está ligada. Se esta é uma solução OK para você, edite /etc/acpi/events/powerbtn-acpi-support:

sudo nano /etc/acpi/events/powerbtn-acpi-support

Esse arquivo deve ser algo como isto:

event=button[ /]power
action=/etc/acpi/powerbtn-acpi-support.sh

Para que o botão liga / desliga não faça nada, altere-o para:

event=button[ /]power
action=

Em seguida, reinicie o acpidaemon com

sudo service acpid restart

O botão liga / desliga não deve ser ignorado.


Eu não estou realmente confortável desativando o botão completamente, pois, como é uma máquina sem cabeça, se o sshd travar ou algo nesse sentido, meu único recurso seria cortar a energia da máquina. Prefiro ainda me deixar com a capacidade de desligar normalmente, se possível.
schizodactyl

1
@schizodactyl no meu laptop, a solução acima desativa apenas o pressionamento único do botão liga / desliga. Uma pressão longa ainda desligará a máquina (embora não seja muito elegante). No momento, não tenho acesso a uma área de trabalho, portanto não posso testar como funcionaria, mas, presumivelmente, ele fará o mesmo. Você também pode mapear um atalho para o comando shutdown se você tiver um teclado conectado.
terdon 11/01

2
Muito obrigado! Meu gatinho costumava desligar meu computador! :)
Geradlus_RU

34

a resposta de terdon está correta na maioria dos casos, mas para distribuições que a adotaram systemd-logindlida com eventos de energia em vez de acpid. Nessas distribuições, adicione ou edite essa configuração /etc/systemd/logind.confpara desativar o botão liga / desliga:

HandlePowerKey=ignore

Para selecionar a nova configuração, reinicie o logind com

sudo systemctl restart systemd-logind

Em algumas distribuições mais antigas, o logind não pode ser reiniciado enquanto uma sessão da área de trabalho está ativa; nesse caso, você precisará reiniciar para selecionar a nova configuração.


3
Parece que é a solução que funciona para o ubuntu 14.04 quando você não está usando o gnome (i3wm no meu caso).
Grzegorz

Eu também tive que definir PowerKeyIgnoreInhibited=yesou desligar o manuseio de energia do meu DE (configurações do gnome). Ambas as soluções ajudaram a fazer o Gnome ignorar o botão liga / desliga.
berkes

Isso funcionou muito bem no meu MacBook Air executando o Debian Stretch. O botão liga / desliga está muito perto do backspace.
Chad Schouggins

Na verdade, são ambos. O sistema ACPI ainda funciona, mas cede o controle logindse for detectado. Isso realmente melhora essa solução porque, se logindestiver falhando, você provavelmente desejará que o botão liga / desliga faça um desligamento adequado por padrão.
Walf

11

Prenda uma fita de papelão sobre o botão. Pegue três pedaços de papelão ondulado e faça um buraco em cada um suficientemente grande para que seu dedo alcance o botão. Cole-os juntos, com o orifício alinhado e, em seguida, prenda o conjunto ao redor do botão. Todos saudam nossos senhores felinos!


3
Veja como: Molly-guard
jwygralak67

3
Como este é legitimamente o que eu estava pensando em fazer se não há nenhuma boa solução de software, eu realmente não posso culpá-lo por sugerir que ...
schizodactyl

1
web.archive.org/web/20160429084659/http://www.retrologic.com/… é o novo link para Molly-guard, pois o link original falhou.
K7AAY

1

Primeiro, você pode editar seu arquivo de mapa de teclas para alterar o comportamento do botão liga / desliga e atribuí-lo a outra tecla

Edite o arquivo: /usr/share/X11/xkb/symbols/inet(editar chave POWR)

Então você precisará desativar o botão liga / desliga com eficiência. Um bom método é com o xinput

corre xinput --list botões de energia de têm sua própria entrada ... escolha o número do dispositivo e execute

xinput disable devnumber algo como xinput disable 8

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.