Ubuntu 20.04 で電源ボタンを無効にする

スティックPCに Ubuntu 20.04 をインストールしたのですが、スティックPC本体を持つ位置にちょうど電源ボタンがあり、ついついシャットダウンさせてしまうことがあり、電源ボタンを無効にできないか調べました。

Linuxでの電源管理はAPMとACPIがありますが、今時のPCならだいたいACPIではないでしょうか。念のため、確認します。

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
$ dmesg |grep ACPI|head
[    0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007b08c000-0x000000007b0b1fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007b0b2000-0x000000007b176fff] ACPI NVS
[    0.000000] efi:  ESRT=0x7b38bb98  ACPI=0x7b093000  ACPI 2.0=0x7b093000  SMBIOS=0x7b366000  SMBIOS 3.0=0x7b365000 
[    0.012859] ACPI: Early table checksum verification disabled
[    0.012869] ACPI: RSDP 0x000000007B093000 000024 (v02 INTEL )
[    0.012879] ACPI: XSDT 0x000000007B093098 0000B4 (v01 Intel  COMSTKFC 01072009 AMI  00010013)
[    0.012895] ACPI: FACP 0x000000007B0AFEB8 00010C (v05 Intel  COMSTKFC 01072009 AMI  00010013)
[    0.012912] ACPI: DSDT 0x000000007B0931E0 01CCD7 (v02 Intel  COMSTKFC 01072009 INTL 20120913)
[    0.012924] ACPI: FACS 0x000000007B176F80 000040
$

ACPIを制御するのは systemd から起動する systemd-logind.service というユニットでした。

man systemd-logind を見ると「Handling of power/sleep hardware keys」と記載されており、「See logind.conf(5) for information about the configuration of this service.」と指示されていたので、 man logind.conf します。

Controls how logind shall handle the system power and sleep keys and the lid switch to trigger actions such as
system power-off or suspend. Can be one of “ignore”, “poweroff”, “reboot”, “halt”, “kexec”, “suspend”,
“hibernate”, “hybrid-sleep”, “suspend-then-hibernate”, and “lock”. If “ignore”, logind will never handle these
keys.

logind.conf(5)

ということで、/etc/systemd/logind.conf に以下を追加。

HandlePowerKey=ignore

systemd を再起動。

# systemctl restart systemd-logind.service

んで、おそるおそる電源ボタンをぽちって押してみると、何も起こらないのでした。めでたしめでたし。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です