Cambiar el comportamiento del botón de encendido de Linux

29

Tengo una máquina Linux mint sin cabeza que uso para un servidor de archivos y otras cosas. Me ha funcionado muy bien durante algunos años, pero hay un problema: a mi gato le gusta pasar el rato encima y, cuando se baja y se sube, ocasionalmente pisa el botón de encendido y apaga la máquina.

¿Hay una manera fácil de cambiar el comportamiento del botón de encendido para que requiera una presión extremadamente larga (10 segundos más o menos) o múltiples presiones para hacer algo?

esquizodactilo
fuente
¿Es esta una computadora de escritorio o una computadora portátil? Supongo que la computadora portátil si ese gato tiene acceso al botón de encendido.
terdon el
3
Es una computadora de escritorio: ¿es esto realmente relevante para una solución de software?
esquizodactyl
Je No solo tengo el mismo problema, es exactamente por la misma razón. Para la pregunta de @terdon, es un escritorio, pero el botón de encendido está en la parte superior del panel frontal hacia arriba. Está en el lugar correcto para que un gato ponga una pata al saltar de la parte superior de la caja.
Sam Hanes
2
Si tiene un botón de reinicio, a menudo es más pequeño y más difícil de presionar. Si es así, puede conectarlo como el botón de encendido y desconectar el botón de encendido real. Así es como trato con los problemas relacionados con el botón de encendido de mi gato :)
Roger Dahl
1
El mismo problema, pero con mis hijos presionando accidentalmente el botón de encendido ... :-)
Júda Ronén

Respuestas:

17

Bueno, una cosa que podrías hacer es simplemente desactivar el botón de encendido por completo. Personalmente, solo lo uso para encender mi máquina, y nunca lo uso una vez que la máquina está encendida. Si esta es una solución correcta para usted, edite /etc/acpi/events/powerbtn-acpi-support:

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

Ese archivo debería verse así:

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

Para que el botón de encendido no haga nada, cámbielo a:

event=button[ /]power
action=

Luego reinicia el acpidemonio con

sudo service acpid restart

Su botón de encendido no debe ser ignorado.

terdon
fuente
No me siento realmente cómodo deshabilitando el botón por completo ya que, dado que es una máquina sin cabeza, si sshd se estrellara o algo así, mi único recurso sería cortar la energía de la máquina. Preferiría dejarme con la capacidad de cerrar con gracia si es posible.
esquizodactyl
1
@schizodactyl en mi computadora portátil, la solución anterior deshabilita solo presionar el botón de encendido. Una pulsación larga seguirá apagando la máquina (aunque no con mucha gracia). No tengo acceso a un escritorio en este momento, así que no puedo probar cómo funcionaría pero, presumiblemente, hará lo mismo. También puede asignar un acceso directo al comando de apagado si tiene un teclado conectado.
terdon el
2
¡Muchas gracias! ¡Mi gatito solía apagar mi computadora! :)
Geradlus_RU
34

La respuesta de terdon es correcta en la mayoría de los casos, pero para las distribuciones que la han adoptado systemd-logind, maneja eventos de potencia en lugar de acpid. En esas distribuciones, agregue o edite esta configuración /etc/systemd/logind.confpara deshabilitar el botón de encendido:

HandlePowerKey=ignore

Para elegir la nueva configuración, reinicie logind con

sudo systemctl restart systemd-logind

En algunas distribuciones más antiguas, logind no se puede reiniciar mientras una sesión de escritorio está activa, en cuyo caso deberá reiniciar para elegir la nueva configuración.

Sam Hanes
fuente
3
Parece que es la solución de trabajo para ubuntu 14.04 cuando no estás usando gnome (i3wm en mi caso).
Grzegorz
También tuve que configurar PowerKeyIgnoreInhibited=yeso desactivar el manejo de energía de mi DE (gnome-settings). Ambas soluciones ayudaron a hacer que Gnome ignorara también el botón de encendido.
Berkes
Esto funcionó de maravilla para mi MacBook Air con Debian Stretch. El botón de encendido está demasiado cerca del retroceso.
Chad Schouggins
En realidad son las dos cosas. El sistema ACPI aún funciona, pero cede el control logindsi se detecta. En realidad, esto hace que esta solución sea mejor porque, si logindfalla, es probable que desee que el botón de encendido se apague correctamente de forma predeterminada.
Walf
11

Pegue con cinta adhesiva un protector de cartón sobre el botón. Tome tres pedazos de cartón corrugado y corte un agujero en cada uno lo suficientemente grande como para que su dedo alcance el botón. Péguelos juntos, con el agujero alineado, luego pegue con cinta adhesiva el conjunto alrededor del botón. ¡Saluden a nuestros señores felinos!

K7AAY
fuente
3
Ver: Molly-guard
jwygralak67
3
Como este es legítimamente lo que estaba considerando hacer si no hay solución de software bueno, no puedo realmente le culpa por lo que sugiere que ...
schizodactyl
1
web.archive.org/web/20160429084659/http://www.retrologic.com/… es el nuevo enlace a Molly-guard ya que el enlace original falló.
K7AAY
1

Primero, puede editar su archivo de mapa de teclas para cambiar el comportamiento del botón de encendido y asignarlo a otra tecla

Edite el archivo: /usr/share/X11/xkb/symbols/inet(edite la clave POWR)

Entonces deberá deshabilitar el botón de encendido de manera eficiente, un buen método es con xinput

ejecutar xinput --listbotones de encendido tienen su propia entrada ... seleccione el número de dispositivo y luego ejecutar

xinput disable devnumber algo como xinput disable 8

intika
fuente