web-dev-qa-db-ja.com

Linuxコンソール画面の非表示動作を変更する

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

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

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

問題がなければ、私のシステムの1つで、ストックグラフィックスドライバーを備えたUbuntu 10.04を実行しています。 fbsetは、radeondrmfbフレームバッファーデバイスを使用してコンソールを表示します。

38
quack quixote

setterm from @ whitequark's answer は合理的なユーザースペースツールですが、それだけではありません。

デフォルトのコンソールブランキング動作は、コンパイル時にカーネルに組み込まれます。起動時に設定できます パラメーター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. 。bashrcのようなシェル初期化ファイルにsetterm -blank X(Xは分、0は無効)を追加します。
  2. / etc/rc.localsetterm -blank Xを追加します。
  3. / etc/default/grubのパラメータリストに追加して、カーネルコマンドラインにconsoleblank=Y(Yは秒、0は無効)を追加します。 GRUB_CMDLINE_LINUX または GRUB_CMDLINE_LINUX_DEFAULT。 (update-grubを忘れないでください。)
42
quack quixote

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は最初の引数でなければならないことに注意してください)。

9
whitequark

誰かが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でテスト済み。

3
basic6

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
Chris Pick

私のシステム(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が(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=0_を_GRUB_CMDLINE_LINUX_パラメーターに追加します。次に_grub2-mkconfig -o /boot/grub2/grub.cfg_を実行して再起動します。

RHEL5またはRHEL 6でconsoleblankを設定したことはありません。

2
David C.

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]'

refs:

1
yurenchen

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

私はこれを追加して、画面を消すのをやめようと髪を引っ張っている他の人を助けると思いました。

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

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

0
mcchinsy