Ubuntu Server 20.04(CUI環境)のコンソール画面を一定時間後に消灯するメモ
前に書いた記事「CentOS 8 (CUI環境)の画面を一定時間後に消灯するメモ」と同じ考え方で処理したメモになります。
旧型ラップトップコンピューター(いわゆるノートPC)Panasonic Let's Note CF-N8に、
Ubuntu Server 20.04.1 LTS をインストールしました。PCの液晶画面が、いつまでも点灯したままになるため、液晶スクリーンに焼き付きが懸念されます。そこで、コンソールを一定時間操作しないときに、スクリーンを消灯させるときに行った方法です。
画面が消灯するまでの時間(秒単位)を記述しているのは、以下のファイルです。
/sys/module/kernel/parameters/consoleblank
この内容は、「0」となっています(単純に cat コマンドで読めます)。「0」は disable blanking を意味し、消灯しない設定になっています。この箇所を書き換えれば、目的の時間経過後にコンソールを消灯できます。
consoleblank 内の値を書き換えるのは、「setterm」コマンドになります。(以下、コマンドの説明の行頭「#」は、rootのプロンプトでの操作を意味します。「sudo」などでの操作です)。setterm コマンドに –blank オプションを使って消灯までの時間を分単位で指定します。例えば、以下の
# setterm –blank 2
を実行すると、/sys/module/kernel/parameters/consoleblank の値は「120」(2分=120秒)になります。そうすると、コンソール操作を行わないと2分後に画面が消灯します。ただし、この値はシステムを再起動すると「0」にリセットされてしまいます。
毎回起動した後、コンソール操作が何もないときに1分後に画面を消灯させるためのサービスを定義して実行させる方法は以下になります。
1. ノートPCの画面(CUI環境)で端末名を調べる
コンソール上で端末名を調べる(以下のコマンド)
# tty
ここでの例では、「/dev/tty1」。
2. 起動スクリプトを作成
myconsoleblank.sh という名前で /usr/local/bin/ に作成。その内容は以下。(1分に設定する例。適宜、ご希望の「分」数を使う)
#!/bin/bash
#Called from /etc/systemd/system/my-console-blank-enable.service
#Turn the console terminal Off 1 minutes later
/bin/setterm -blank 1 > /dev/tty1
3. スクリプトに実行権限を付与
# chmod 755 /usr/local/bin/myconsoleblank.sh
4. サービス定義を登録
/etc/systemd/system/ に、my-console-blank-enable.service の名前で作成(Descriptionの行の内容は適当に書いています。改行なしの一行です)。
[Unit]
Description = Turn the console terminal Off after a time defined by /usr/local/bin/myconsoleblank.sh
[Service]
Type = simple
User = root
RemainAfterExit = yes
EnvironmentFile = -/etc/myrootenv
ExecStart = /usr/local/bin/myconsoleblank.sh
Restart = always
[Install]
WantedBy = multi-user.target
5. EnvironmentFile を作成
スクリプト実行時の環境変数を myrootenv の中で設定、場所は /etc ディレクトリ。
HOME = /root
TERM = linux
PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
PATHなどの値は、コンソールターミナル(この例ではノートPC)から printenv コマンドで調べておく。
6. 作成したサービスの起動
サービスを起動するコマンド
# systemctl start my-console-blank-enable
状態を確認するのは、以下のコマンド
# systemctl status my-console-blank-enable
エラーがなかったら、以下のコマンドでサービスを自動起動にする
# systemctl enable my-console-blank-enable
エラーが出たら、例えば以下のようにして調べてください。
# journalctl -b | grep myconsoleblank
補足:
上記、「4. サービス定義を登録」における EnviromentFile の記述と作成場所は、/etc/systemd/system/ にある snap.lxd.active.service を参考にしました。また、「5. EnvironmentFile を作成」における PATH の定義記述は、/etc/environment を参考にしました。
以上です。
なお、すべての記事をまとめた★カテゴリーごとの全記事一覧★がありますのでご覧ください。
≪ VMware ESXi 7.0 で No Network Adapters | 解決 | HOME | VBoxNetLwf エラー (イベントID 12) ≫
≪ VMware ESXi 7.0 で No Network Adapters | 解決 | HOME | VBoxNetLwf エラー (イベントID 12) ≫