本文へ移動
vast-cowのブログ
前のページへ戻る

Rocky LinuxでLid Close時のサスペンドを無効化する方法

この記事を編集

Rocky Linux では、multi-user.target でも蓋閉じ処理は基本的に systemd-logind が扱います。HandleLidSwitch=ignore にします。Rocky 公式ドキュメントでも /etc/systemd/logind.conf の HandleLidSwitch を ignore にする方法が案内されています。(Rocky Linux Docs)

推奨設定

sudo cp -a /etc/systemd/logind.conf /etc/systemd/logind.conf.bak.$(date +%F-%H%M%S)

sudo mkdir -p /etc/systemd/logind.conf.d

sudo tee /etc/systemd/logind.conf.d/99-ignore-lid.conf >/dev/null <<'EOF'
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
EOF

sudo systemctl restart systemd-logind.service

これで、通常時・AC 接続時・ドック接続時の蓋閉じをすべて無視します。HandleLidSwitch の既定値は suspend で、ignore にすると logind が蓋閉じイベントでサスペンドしなくなります。(man7.org)

確認

systemd-analyze cat-config systemd/logind.conf | grep -E 'HandleLidSwitch'

期待値:

HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

現在の default target も確認するなら:

systemctl get-default

multi-user.target にしておくなら:

sudo systemctl set-default multi-user.target

直接 /etc/systemd/logind.conf を編集する場合

drop-in が効かない環境では、直接編集でも可です。

sudo vi /etc/systemd/logind.conf

以下を [Login] セクションに設定します。

[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

反映:

sudo systemctl restart systemd-logind.service

まだスリープする場合

まずログを見ます。

journalctl -u systemd-logind -b | grep -i -E 'lid|suspend|sleep'

さらに、他のプロセスが電源管理を握っていないか確認します。

systemd-inhibit --list

multi-user.target なら通常はデスクトップ環境が介入しませんが、GNOME などの graphical session が動いている場合は、デスクトップ環境側がサスペンド処理を引き取ることがあります。systemd の man page でも、別アプリケーションが低レベル inhibitor lock を取ると Handle* 設定が効かない場合があると説明されています。(man7.org)

強制的にサスペンド系 target 自体を無効化する最終手段はこれです。

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

戻す場合:

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

通常は logind の HandleLidSwitch=ignore だけで足ります。サーバー用途のノート PC なら、蓋を閉じたまま高負荷運用すると排熱が悪化する機種がある点だけ注意してください。Red Hat の手順にも同様の注意があります。(Red Hat Documentation)


この記事を編集
この記事を共有:

コメント


前の記事
bcache で cache device が無い backing device を強制的に認識させる方法
次の記事
bashの履歴を長めに保存し、重複を減らして複数ターミナルでも使いやすくする設定