ワイヴァンアイエス研究所ブログ

ストレージシステムやITの技術動向やテクノロジーなどを紹介。その他、趣味的な話題もあります
ワイヴァンアイエス研究所ブログ TOP  >  linux >  CentOS 8 (CUI環境)の画面を一定時間後に消灯するメモ

CentOS 8 (CUI環境)の画面を一定時間後に消灯するメモ

sambaを導入したCentOS 8 (CUI環境)の画面を一定時間後にblank(暗く)する方法をメモとして残します。


旧型ラップトップコンピューター(いわゆるノートPC)Panasonic Let's Note CF-N8に、CentOS 8をインストールしsambaを導入しました。旧型PCの能力がGUI環境を導入するには非力なこともあり、基本的なファイルサーバーとしてだけ使うので、CUI環境を構築しました。インストールとsambaの設定は問題なく完了し、ファイルサーバーとして機能しています。


一つだけ困ったのは、ノートPCの液晶画面が、いつまでも点灯したままの状態です。このままでは、液晶スクリーンに焼き付きが発生します。コンソールを一定時間操作しないときに、スクリーンを消灯させたいのです。


画面が消灯するまでの時間(秒単位)は、 /sys/module/kernel/parameters/consoleblank に記述されています。内容を見ると「0」が入っていました。「0」はdisable blankingで消灯しない設定になっています。


consoleblank 内の値を書き換えるのは、「setterm」コマンドになります。(以下、コマンドの説明の行頭「#」は、rootのプロンプトを示します)


# setterm -blank 2


のように、「分」単位で値を定義します。上記の例では、コンソール操作が何もないと2分後に画面が消灯します。上記のコマンドの後に、/sys/module/kernel/parameters/consoleblank の値を調べると「120」になっています。2分=120秒の「120」が書き込まれています。しかし、CentOS 8を再起動すると、「0」にリセットされます。


毎回の起動ごとにログインしてコマンドを入力すれば希望の時間後に画面が消灯できます。しかし、起動した後、ログインしてコマンドを入力するのは面倒です。ログインせず、PCが起動した後、自動的に一定時間に画面を消灯させたいのです。少し大げさになりますが、サービスの作成を試行錯誤した結果を紹介します。今回の例とは逆に、消灯させたくないという場合にも応用できます。


ノートPCの画面(CUI環境)で端末名を調べる

コマンドで


# tty


の出力結果(端末名)を記録しておきます。ここでは、「/dev/tty1」でした。


起動スクリプトを作成

myconsoleblank.shという名前で作成しましたが場所も重要でした。rootのホームディレクトリ「/root」の下に作成してもエラーで実行できませんでした(『Permission denied』のようなエラー、詳しい内容は忘れました、すみません。chmod +x でもダメでした)。そこで /usr/local/bin/ に作成しました。スクリプトの内容は以下です。消灯する時間は以下の例では、1分にしています。適宜、ご希望の「分」数を使ってください。myconsoleblank.sh の内容は以下です。


#!/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


このスクリプトに実行権限を付与します。


# chmod 755 /usr/local/bin/myconsoleblank.sh


サービス定義を登録

/etc/systemd/system/ に、my-console-blank-enable.service の名前で以下の内容を作成します。(注:Description の行は、myconsoleblank.sh まで途中で改行せずに1行として入力)


[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/sysconfig/rootenv
ExecStart = /usr/local/bin/myconsoleblank.sh
Restart = always

[Install]
WantedBy = multi-user.target


EnvironmentFile を作成

/etc/sysconfig/ にスクリプト実行時の環境変数を設定します。rootenv という名前で作成しました。


HOME=/root
TERM=linux
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin


PATH などの値は、実際の端末(この例ではノートPC)でのコマンド printenv などで調べられます。


サービスを起動

以下のコマンドを入力します。


# systemctl start my-console-blank-enable


状態を確認するのは、以下のコマンド。


# systemctl status my-console-blank-enable


エラーがなかったら、自動起動にします。


# systemctl enable my-console-blank-enable


エラーが出たら、例えば以下のようにして調べてください。


# journalctl -b | grep myconsoleblank


他には、ブート時に実行されるコマンドラインを編集して「consoleblank=x」で制御する方法があります(xは秒数で、0はdisable blanking)。こちらは試しておりませんが、以下のサイトをご覧ください。


参考URL: How do I disable the blank console “screensaver” on Ubuntu Server?


以上です。


すべての記事をまとめた★カテゴリーごとの全記事一覧★がありますのでご覧ください。


以下のバナーをクリックしていただくと、とても励みになります!

にほんブログ村 IT技術ブログ IT技術情報へ

[Ctrl]キーを押しながらクリックすると他のページに飛びません

<2020.03.08追記>
/etc/systemd/systemに作成する「my-console-blank-enable」ですが、ブログに書き写すときに抜け落ちた行がありました。
[Service]の箇所に、下記の行を入れてください。
RemainAfterExit = yes
本文中の「my-console-blank-enable」は修正してあります。
[ 2020年02月02日 09:00 ] カテゴリ:linux | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL