Linuxコンソール画面のブランキング動作を変更する


38

Linux仮想端末の画面消去動作を変更するにはどうすればよいですか?

たとえば、XからVTに切り替えてログインし、5分間程度システムを放置すると、スクリーンセーバーのように画面が空白になります。スクリーンセーバーのようなキーを押すと戻ってきます。

ほとんどの場合、タイムアウトを変更したいだけですが、他の設定にも興味があります。

それが役立つ場合、私のシステムの1つは、ストックグラフィックスドライバーでUbuntu 10.04を実行しています。 フレームバッファデバイスfbsetを使用したコンソールを示していradeondrmfbます。


2
これがお役に立てば幸いです。同じ質問askubuntu.com/questions/138918/

回答:


42

settermwhitequarkの答え@合理的なユーザ空間のツールですが、それは全体の話ではありません。

デフォルトのコンソールブランキング動作は、コンパイル時にカーネルに組み込まれます。これは、ブート時に設定可能であるのparamaterを持つconsoleblank =、またはとユーザー空間にsetterm。カーネルのドキュメントから(kernel-parameters.txt):

consoleblank=  [KNL] The console blank (screen saver) timeout in
               seconds. Defaults to 10*60 = 10mins. A value of 0
               disables the blank timer.

以下に、オプション、Ubuntuシステムのデフォルト、および影響範囲を示します。

  • setterm -blank [0-60]; 照会すると常に0を報告します。実際のVTで実行すると効果的です。すべての実際のTTYに影響します。VTのスクリーンセッションで実行すると効果的ではありません。
  • setterm -powerdown [0-60]; 常に「3]」(??)を報告します。効果がないようです。UbuntuカーネルはAPM_DISPLAY_BLANKを有効にしません。これは関連している可能性があります。
  • consoleblank=N; デフォルトは600(10分)です。すべての実際のVTに影響します。VTのスクリーンセッションに影響します。実行中に設定する方法はありません。

したがって、デフォルトを変更するための私のオプションは次のいずれかです。

  1. .bashrcsetterm -blank Xなどのシェル初期化ファイルに(Xを分単位で、無効にするには0を)追加します
  2. /etc/rc.localに追加setterm -blank Xします。
  3. 追加consoleblank=Yでパラメータリストに追加することで、カーネルのコマンドラインに(無効にするには、秒単位のY、0)には、/ etc / default / grubのいずれかで、GRUB_CMDLINE_LINUXまたはGRUB_CMDLINE_LINUX_DEFAULT。(忘れないでくださいupdate-grub。)

4
tmuxsetterm -blank X内からはうまくいきませんでしたが、コマンドを実行する前にtmuxを終了したときに完全に機能したことに注意してください。
コーディヘス14

1
grub2をブートローダーとして使用している場合、このカーネルパラメーターを/ etc / default / grub GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"に追加してから、でgrub設定を更新できますgrub[2]-mkconfig -o /boot/grub/grub.cfg
user3132194 14年

3]for setterm -powerdownは半分しか真ではありません:をsetterm -powerdown 3 | hexdump -c返します033 [ 1 4 ; 3 ]。このエスケープシーケンスをinterpreteすべきかわからない...
ダニエル・アルダー

1
ディストリビューションおよび変更を有効にする場所によっては、これらのオプションの一部が機能しない場合があります。rc.localのsettermは、RHEL 5および6には適していますが、7には適していません。
David C.

9

試してくださいsetterm -blank $minutes(または無効にするには0を渡します)。-powersaveオプションも関連する場合があります。setterm他にもたくさんの便利なオプションがあります。

システムの起動時にこれらの属性を設定する場合は、initscriptの作成を検討してください。これは/etc/init.dディレクトリに配置された単なるスクリプトです。呼び出してみましょうsetterm

#!/bin/sh
[ "$1" == "start" ] || exit 0 # only initialize everything when called as /etc/init.d/setterm start
for term in /dev/tty[0-9]*; do # select all ttyNN, but skip ttyS*
    setterm -blank 0 >$term <$term
    setterm -powersave off >$term <$term
done

次に、実行可能にします。

# chmod +x /etc/init.d/setterm

最後に、/ etc / rcX.dシンボリックリンクを作成します(Debianの方法):

# update-rc.d setterm defaults

(その振る舞いにうんざりする場合は、実行してください# update-rc.d -f setterm remove-fこれが最初の引数でなければならないことに注意してください)。


時間 オンザフライで便利だと思われますが、私のテストUbuntuシステムでは実際-powerdownに有効な設定であるようです。起動時のシステム全体のデフォルトの設定はどうですか?実行されているsetterm -blank Xsetterm -powerdown Yは/etc/rc.local(または〜/ .bashrcの)合理的?
いんちきキホーテ

1
はい、ただしrc.local実際に機能する場合のみ。(最近のupstart移行はいくつかのことを台無しにしましたが、明らかにそれは存在し、私のシステム上で動作します。)そうでない場合は、initscriptを作成する必要があります。それは簡単です。この場合、start最初の引数として渡されたときにすべてを初期化し、それ以外は何もしません。私の答えでそれを説明します。
ホワイトクォーク

コマンドsetterm -blank X >/dev/ttyNが機能していないようですので、initscriptの概念が機能するとは思いません。ブート時パラメーターthoに出くわし、さらに調査を行いました。私は約間違っているように見える-powerdown-powersave。完全にテストされていませんが、私のシステムでは動作していません。 setterm -blank X実際のVTからのみ機能し、すべてのVTに影響するため、/ etc / rc.localを介して1回実行するのが妥当です。(Upstartはrc.localを削除せず、/ etc / rcX.dのものだけを削除します。)
クワックキホーテ

1
エヘム。でsettermエスケープシーケンスを出力するようですがstdout、TTYタイプをstdin次のようにチェックしますsetterm ... >/dev/ttyN </dev/ttyN
ホワイトクォーク

それは理にかなっており、(実際のTTYから)動作しますが、その構文を使用する意味は何ですか?(1)/ dev / ttyNを指定すると便利な画面(または他のPTY)からはまだ機能しません。(2)1つのVTを設定するとすべてに影響するため、initscriptループは不要です。
いんちきのキホーテ

3

誰かがDebianの別の可能な解決策(おそらくUbuntuではない)を探している場合:

/etc/kbd/config、「BLANK_TIME」という設定を探します。

# screen blanking timeout.  monitor remains on, but the screen is cleared to
# range: 0-60 min (0==never)  kernels I've looked at default to 10 minutes.
# (see linux/drivers/char/console.c)
BLANK_TIME=30

0に変更すると、無効になります。

BLANK_TIME=0

Debian 6および7でテスト済み。


2

upstartを使用する新しいUbuntuを実行している場合は、次を使用できます。

for file in /etc/init/tty*.conf; do tty="/dev/`basename $file .conf`"; echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty" | sudo tee -a "$file"; done

ここで何が起こっているかについての簡単な説明:

新しいUbuntuバージョンでは、システムの起動にupstartが使用されます。upstartを使用すると、Linuxコンソールは/ etc / init内に保存された構成ファイルでセットアップされます。上記のコマンドは、これらの構成ファイルを繰り返し処理することから始まります。

for file in /etc/init/tty*.conf;

$ fileのttyのupstart構成ファイル名は、ttyデバイスの名前を作成するために使用されます。

tty="/dev/`basename $file .conf`";

ttyが開始された後、画面のブランキングと省電力を無効にするために「setterm」を実行するupstart「post-start」コマンドが構築されます。

echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty"

そして最後に、そのコマンドがupstart構成ファイルに追加されます。

| sudo tee -a "$file";

2

私のシステム(RedHat Enterprise Linuxのさまざまなリリース)では、さまざまなアプローチが必要であることがわかりました。

RHEL 5および6システムの場合、次の行を追加できます。

/bin/setterm -blank 0 -powerdown 0 -powersave off

/etc/rc.local。これにより、システム起動時のコンソール画面のブランキングが無効になります。

これは、RHEL 7システムでは機能しないことがわかりました。RHEL7では、rc.localからsettermを実行するとエラーが生成されます。

setterm: $TERM is not defined.

このコマンドは、$ TERMが(asとしてlinux)定義されている対話型シェルから機能します。settermで強制的に使用する場合:

/bin/setterm -term linux -blank 0 -powerdown 0 -powersave off

その後、別のエラーが表示されます:

setterm: cannot (un)set powersave mode: Inappropriate ioctl for device

同じコマンドが対話型セッションからはうまく機能しますが。consoleblankカーネルパラメーターの設定は機能しました。

RHEL7で、パラメーターを編集/etc/default/grubして追加consoleblank=0GRUB_CMDLINE_LINUXます。次に、実行grub2-mkconfig -o /boot/grub2/grub.cfgして再起動します。

consoleblankRHEL5または6で設定しようとしませんでした。


2
RHEL7はsystemdを使用します。rc.localは、デフォルトでは端末に接続されていません。私はあなたが追加することができると思う</dev/tty1 >/dev/tty1か、または仕事を作るために何か
sourcejedi

1

LinuxコンソールのプライベートCSIシーケンス

sleep mode/screensaver入力時間を設定するには(Xは分単位の時間、0 =なし):

(シリアルコンソールから)

echo -e '\033[9;X]' > /dev/tty1    

または(フレームバッファーコンソールから)

echo -e '\033[9;X]'    

または、起動するたびに設定するには、次を使用します/etc/inittab

tty1::sysinit:echo -e '\033[9;X]'

参照:


0

gnome-screensaver-command --exit私の.profileファイルに追加すると、Debian Linux(Wheezy)でこの問題が修正されました。

私はこれを追加して、画面ブランキングをやめようとして髪を引っ張っている人を助けると思います。

「電力を節約するために画面を暗くする」というタイトルのチェックボックスが誤動作しています。オフにした場合でも、選択した非アクティブ時間に応じて画面が空白になります。

更新:実際にsleep 30 && /usr/bin/gnome-screensaver-command --exit &適切に機能させる必要がありました。GNOMEスクリーンセーバーは、.profileが処理されてからかなり後に開始されるようです。


2
これはGnomeスクリーンセーバーではなく、コンソール画面のブランキングに関するものです。
basic6
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.