Changer le comportement du bouton d'alimentation de Linux


29

J'ai une machine linux menthe sans tête que j'utilise pour un serveur de fichiers et d'autres choses. Cela fonctionne très bien pour moi depuis quelques années, mais il y a un problème: mon chat aime traîner dessus et quand elle grimpe, elle appuie de temps en temps sur le bouton d'alimentation et éteint la machine.

Existe-t-il un moyen simple de modifier le comportement du bouton d'alimentation de sorte qu'il nécessite une pression extrêmement longue (environ 10 secondes) ou plusieurs pressions pour pouvoir effectuer quoi que ce soit?


Est-ce un ordinateur de bureau ou un ordinateur portable? Je suppose que l'ordinateur portable si ce chat a accès au bouton d'alimentation.
Terdon

2
C'est un ordinateur de bureau - est-ce réellement pertinent pour une solution logicielle?
schizodactyle

Il h. Non seulement j'ai le même problème, mais c'est exactement pour la même raison. Pour répondre à la question de @ terdon, il s'agit d'un ordinateur de bureau, mais le bouton d'alimentation se trouve en haut du panneau avant. C’est au bon endroit qu’un chat mette une patte lorsqu’il saute du haut du boîtier.
Sam Hanes

2
Si vous avez un bouton de réinitialisation, il est souvent plus petit et difficile à appuyer. Si tel est le cas, vous pouvez le connecter en tant que bouton d'alimentation et déconnecter le bouton d'alimentation. Voilà comment je traite mes problèmes de bouton d'alimentation liés à mon chat :)
Roger Dahl

1
Même problème, mais avec mes enfants appuyant accidentellement sur le bouton d'alimentation… :-)
Júda Ronén

Réponses:


17

Eh bien, vous pouvez simplement désactiver le bouton d'alimentation. Personnellement, je ne l'utilise que pour allumer ma machine, et ne l'utilise jamais une fois que la machine est allumée. Si cela vous convient, modifiez /etc/acpi/events/powerbtn-acpi-support:

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

Ce fichier devrait ressembler à ceci:

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

Pour que le bouton d'alimentation ne fasse rien, remplacez-le par:

event=button[ /]power
action=

Puis redémarrez le acpidémon avec

sudo service acpid restart

Votre bouton d'alimentation ne doit pas être ignoré.


Je ne suis pas très à l'aise avec la désactivation complète du bouton car, comme il s'agit d'une machine sans tête, si sshd se bloquait ou quelque chose du genre, mon seul recours serait de couper l'alimentation de la machine. Je préférerais encore beaucoup me laisser la possibilité de fermer gracieusement si possible.
schizodactyle

1
@schizodactyl sur mon ordinateur portable, la solution ci-dessus ne désactive que la simple pression du bouton d'alimentation. Un appui long éteindra toujours la machine (mais pas avec beaucoup de grâce). Je n'ai pas accès à un ordinateur de bureau pour le moment, donc je ne peux pas tester son fonctionnement, mais, vraisemblablement, ce sera la même chose. Vous pouvez également mapper un raccourci sur la commande shutdown si un clavier est connecté.
Terdon

2
Merci beaucoup! Mon chaton avait l'habitude d'éteindre mon ordinateur! :)
Geradlus_RU

31

La réponse de terdon est correcte dans la plupart des cas, mais pour les distributions qui l'ont adoptée, systemd-logindelle gère les événements d'alimentation au lieu de acpid. Sur ces distributions, ajoutez ou modifiez ce paramètre /etc/systemd/logind.confpour désactiver le bouton d'alimentation:

HandlePowerKey=ignore

Pour reprendre le nouveau paramètre, redémarrez logind avec

sudo systemctl restart systemd-logind

Sur certaines distributions plus anciennes, logind ne peut pas être redémarré lorsqu'une session de bureau est active. Dans ce cas, vous devrez redémarrer pour pouvoir utiliser le nouveau paramètre.


2
Il semble que c’est la solution efficace pour Ubuntu 14.04 lorsque vous n’utilisez pas gnome (i3wm dans mon cas).
Grzegorz

Je devais également définir PowerKeyIgnoreInhibited=yesou désactiver l'alimentation de mon DE (paramètres de gnome). Les deux solutions ont également aidé Gnome à ignorer le bouton d'alimentation.
Berkes

Cela a fonctionné comme un régal pour mon MacBook Air fonctionnant sous Debian Stretch. Le bouton d'alimentation est trop proche du retour arrière.
Chad Schouggins

10

Duct-tape un garde en carton sur le bouton. Prenez trois morceaux de carton ondulé et découpez un trou suffisamment grand pour que votre doigt puisse atteindre le bouton. Collez-les ensemble, avec le trou aligné, puis scotchez l'assemblage autour du bouton. Salutons tous nos seigneurs félins!



3
Comme c'est légitimement ce que je pensais faire s'il n'y a pas de bonne solution logicielle, je ne peux vraiment pas vous reprocher de l'avoir suggérée ...
schizodactyl

1
web.archive.org/web/20160429084659/http://www.retrologic.com/… est le nouveau lien vers Molly-guard car le lien d'origine a échoué.
K7AAY

1

Vous pouvez d’abord modifier votre fichier de clavier pour modifier le comportement du bouton d’alimentation et l’attribuer à une autre clé.

Editer le fichier: /usr/share/X11/xkb/symbols/inet(touche Edit POWR)

Ensuite, vous devrez désactiver le bouton d'alimentation efficacement. Une bonne méthode consiste à utiliser xinput.

exécuter les xinput --listboutons d'alimentation ont leur propre entrée ... choisir le numéro de périphérique puis exécutez

xinput disable devnumber quelque chose comme xinput disable 8

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.