用户有时候会遇到在 RHEL7/ Centos7 中按下电源按钮,出现“诡异”现象。比如为什么按下电源键就黑屏了没关机。这里的“电源按钮”,包括了物理的按钮和虚拟机的“关机”按钮。
RHEL7中的电源键行为主要有两个影响因素,systemd 和 gnome3.
如果系统运行在 multi-user.target 下,则考虑 systemd 的设置。如果系统运行在 graphical.target 下,则考虑 gnome 的设置。
Systemd
systemd-logind 会捕获电源键,然后作出相应的行为。默认是 poweroff, 但也可以设置为 "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep" 和 "lock" 其中之一。在 /etc/systemd/logind.conf 中可以修改。
Gnome 3
有不少用户会在服务器上运行图形界面,虽然我不知道为什么。
RHEL7 的默认桌面是 Gnome 3。 在 Gnome 3 启动后,它会接管 systemd 对电源按钮的控制。
默认情况下,按下电源键会进入休眠状态。可以通过以下命令进行调整。
修改某个用户的配置
在这个用户下,执行:
shutdown 可以替换成 'blank', 'suspend', 'shutdown', 'hibernate', 'interactive', 'nothing','logout' 其中之一。
全局设置(强制所有用户遵守)
创建 /etc/dconf/db/local.d/00-power 文件,写入以下内容:
button-power='nothing'
再创建一个lock文件,强制让所有用户遵守该设置:
/etc/dconf/db/local.d/locks/power
更新 dconf: