#概要
中古で購入したノートPC(dynabook R731/39B)にDebian10をインストールしたが、自動サスペンド機能により20分以上が操作がないとサスペンドへ移行するためその設定の解除を記載。
#事象
ノートPCにDebian10をインストール。
サーバとして運用するので蓋を閉じるとサスペンドへ移行する設定を無効化したが
20分程度マウス、キーボードなどの操作がないと、SSHやリモート接続状態であってもサスペンドへ移行する。
サーバなのに20分で操作不能になるのは致命的なので調査と対応を行う。
#余談
なお、蓋を閉じるとサスペンドへ移行する設定を無効化するのは、
/etc/systemd/logind.conf のファイルを編集する。
ファイルの中には#が先頭に付いた文字列がたくさんあるのでその中から以下の文字を探す。
#HandleLidSwitch=suspend
見つけたら改行して同じ行をコピーして先頭の#を消す
次に=の後ろのsuspendをignoreに書き換え、保存。
以下の文字列が追加されることを確認する。
HandleLidSwitch=ignore
その後は再起動もしくは以下のコマンドを実行して設定ファイルを再読み込みします。
~$ systemctl restart systemd-logind.service
以下、参考にしたサイト
- UbuntuノートPCを閉じてもサスペンドしない設定
(https://usado.jp/spdsk/2018/09/19/post-4383/)
#調査結果
20分でサスペンドする事象について調べたが蓋を閉じたときの動作の設定に関する資料が多く苦労したが以下に手掛かりを見つける。
- Ubuntu 18.04 LTSの「ヤバイ不具合」まとめ
(https://linuxfan.info/ubuntu-18-04-issues)
上記サイトの4番の不具合。
「バッテリー駆動の時、リモートログインしているユーザーがいても、入力が20分間ないとサスペンドしてしまう。」
ノートPCなどでACアダプタをつながず、バッテリーで駆動している時の問題です。
SSHなどでリモートログインしているユーザーがいても、PCのキーボードやタッチパッドを20分間操作しないと、サスペンドしてしまいます。
「バッテリー駆動のPCにリモートログインする」というのはレアケースですが、そういう使い方をしている場合は注意が必要ですね。
レアケースなのか?と首をかしげたがサイトに今回の事象に対するソース元があったのでそちらを確認
- auto-suspend can't be disabled when GDM is active
(https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22)
開発者からの回答に
The newly-default auto-suspend behaviour appears to be a result of this gnome-settings-daemon change to make the defaults comply with European and American power-saving regulations.
内容が英語なので翻訳をかけると
新しくデフォルトになった自動サスペンド動作は、このgnome-settings-daemonが変更された結果、デフォルトがヨーロッパおよびアメリカの省電力規制に準拠するようになったようです
また、
There's currently no UI for this; if UI existed, it would presumably be in gnome-control-center.
現在、このためのUIはありません。 UIが存在する場合、おそらくgnome-control-centerにあります。
と回答にあるように現在、この自動サスペンドの設定を変更できる項目はGUIにはない模様。
しかし、設定ファイルと変更方法は記載されていたので次に対応方法を記載する。
#対応方法
GUIから設定を変更することはできないみたいなので設定ファイルを変更する。
ファイルは
/usr/share/gdm/dconf/99-local-settings
(私の環境では/99-local-settingsというファイルはなく90-debian-settingsの名前でしたのでdconf内のファイルの中身を確認してください。)
と
/etc/gdm3/greeter.dconf-defaults
の2種を変更する。
変更内容は下記の追記になります。
[org / gnome / settings-daemon / plugins / power]
sleep-inactive-ac-timeout = 0
sleep-inactive-battery-timeout = 0
どちらのファイルも一番下に Automatic suspendの項目があるためその下に追記を行う。
追記後は再起動して、20分以上放置してリモート接続が保たれているかを確認する。
#結果
設定前は別サーバから飛ばしたpingが1188秒までサーバに到達したのを確認できたがその後は到達できなかった(サーバがサスペンドへ移行したため)。
設定後は別サーバからpingを飛ばし一晩放置したが問題なく到達を確認。
ひとまずはサーバとしての運用に支障はないだろう。
#終わりに
設定ファイルの Automatic suspendの項目のコメント部分を確認すると
Automatic suspend
# =================
[org/gnome/settings-daemon/plugins/power]
# - Time inactive in seconds before suspending with AC power
# 1200=20 minutes, 0=never
# sleep-inactive-ac-timeout=1200
# - What to do after sleep-inactive-ac-timeout
# 'blank', 'suspend', 'shutdown', 'hibernate', 'interactive' or 'nothing'
# sleep-inactive-ac-type='suspend'
# - As above but when on battery
# sleep-inactive-battery-timeout=1200
# sleep-inactive-battery-type='suspend'
自動サスペンド
#=================
[org / gnome / settings-daemon / plugins / power]
#-AC電源で一時停止するまでの非アクティブ時間(秒)
#1200 = 20分、0 =なし
#sleep-inactive-ac-timeout = 1200
#-sleep-inactive-ac-timeoutの後の処理
#「ブランク」、「サスペンド」、「シャットダウン」、「休止状態」、「インタラクティブ」または「無」
#sleep-inactive-ac-type = 'suspend'
#-上記と同じですが、バッテリーの場合
#sleep-inactive-battery-timeout = 1200
#sleep-inactive-battery-type = 'suspend'
と記載されているため、今回の事象のまんま原因であると思われる。(デフォルトが20分でサスペンドに移行するとことか)
また、事象確認のために調べたサイトによると昔から発生しているような事象ではなくUbuntu18.04がリリースされたくらいから確認された事象であるため、そのうちGUIによる変更が可能になり、この記事の意味もなくなるのではないかと思っている。
というかなくなることを祈っている。