更改Linux电源按钮的行为


29

我有一台无头的Linux铸造机,用于文件服务器和其他设备。几年来对我来说一直很好,但是有一个问题-我的猫喜欢挂在它上面,当她爬下时,偶尔踩下电源按钮并关闭机器。

是否有一种简单的方法可以更改电源按钮的行为,以便需要很长的持续时间(约10秒)或多次按下才能执行任何操作?


这是台式机还是笔记本电脑?我猜笔记本电脑,如果那只猫可以使用电源按钮。
terdon 2014年

3
这是台式机-这实际上与软件解决方案相关吗?
schizodactyl 2014年

h 我不仅有相同的问题,而且原因完全相同。@terdon的问题是,它是一个台式机,但电源按钮在前面板的顶部朝上。从箱子顶部跳下来时,猫就在正确的地方放爪子。
Sam Hanes

2
如果您有一个重置按钮,则它通常更小且更难按。如果是这样,您可以将其连接为电源按钮,然后断开实际的电源按钮。这就是我处理与猫有关的电源按钮问题的方式:)
Roger Dahl

1
同样的问题,但是我的孩子不小心按下了电源按钮……:-)
尤达·罗内(JúdaRonén)

Answers:


17

好吧,您可以做的一件事就是完全禁用电源按钮。就个人而言,我仅使用它来开启机器,而在机器开启后再也不会使用它。如果这对您来说是一个好的解决方案,请编辑/etc/acpi/events/powerbtn-acpi-support

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

该文件应如下所示:

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

要使电源按钮不起作用,请将其更改为:

event=button[ /]power
action=

然后重新启动acpi守护进程

sudo service acpid restart

您的电源按钮不应被忽略。


我完全不能完全禁用按钮,因为这是一台无头机器,如果sshd崩溃或沿这些路线发生故障,我唯一的办法就是切断机器的电源。我宁愿仍然让自己能够在可能的情况下正常关闭。
schizodactyl 2014年

1
@schizodactyl在我的笔记本电脑上,上述解决方案仅禁用一次按电源按钮的操作。长按仍会关闭机器(尽管不是很正常)。我目前无法访问桌面,因此无法测试它的工作方式,但是大概可以做到。如果已连接键盘,也可以将快捷方式映射到shutdown命令。
terdon 2014年

2
非常感谢你!我的小猫过去常常关闭计算机电源!:)
Geradlus_RU 2014年

34

terdon的答案在大多数情况下是正确的,但对于已采用的发行版,systemd-logind它处理电源事件而不是acpid。在这些发行版上,添加或编辑此设置 /etc/systemd/logind.conf以禁用电源按钮:

HandlePowerKey=ignore

要获取新设置,请使用重新启动登录

sudo systemctl restart systemd-logind

在某些较旧的发行版中,如果桌面会话处于活动状态,则无法重新启动已登录的帐户,在这种情况下,您需要重新启动才能使用新设置。


3
当您不使用gnome(在我的情况下为i3wm)时,它似乎是ubuntu 14.04的工作解决方案。
Grzegorz

我还必须设置PowerKeyIgnoreInhibited=yes或关闭DE(gnome设置)的电源处理。两种解决方案都使Gnome也忽略了电源按钮。
Berkes

这为我运行Debian Stretch的MacBook Air带来了好处。电源按钮离退格太近了。
乍得·舍金斯

实际上两者都有。ACPI系统仍然有效,但是将控制权移交给了logind它(如果已检测到)。这实际上使该解决方案更好,因为如果logind失败,则您可能希望电源按钮在默认情况下进行适当的关闭。
沃尔夫

11

用胶带将硬纸板保护层粘在按钮上。取三块瓦楞纸,然后在每个大孔上切一个小孔,以使手指可以直达按钮。将它们胶合在一起,对准孔,然后用胶带将组件缠绕在按钮周围。所有人都称赞我们的猫王!



3
因为如果没有好的软件解决方案,这就是我正在考虑做的事情,所以我真的不能怪你建议它……
schizodactyl 2014年

1
web.archive.org/web/20160429084659/http://www.retrologic.com/…是指向Molly-guard的新链接,因为原始链接失败。
6

1

首先,您可以编辑键盘映射文件以更改电源按钮的行为,以将其分配给其他键

编辑文件:(/usr/share/X11/xkb/symbols/inet编辑POWR键)

然后,您将需要有效地禁用电源按钮。xinput是一个好方法

运行xinput --list电源按钮有其自己的输入...选择设备编号然后运行

xinput disable devnumber 就像是 xinput disable 8

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.