TMOUT
変数を設定して、指定した非アクティブ期間の後にbashセッションを自動的に終了できることを知っています。ただし、私が欲しいのは、そのonlyを6つの組み込み仮想コンソールに適用することです。 ctrl+alt+ {F1.。F6}。
ターミナルを開きたいときは、ほとんどの場合、ターミナルアプリを使用します。コンピュータを離れるときは、画面をロックして、だれもそれらの端末にアクセスできないようにします。だから私はそれらにタイムアウトを持たせたくありません。
ただし、まれに、仮想コンソールの1つを使用してコンピューターで作業することがあります。通常、メインのGnomeセッションがフリーズしているか、使用できないことが原因です。問題のあるアプリを強制終了してから、メインセッションに戻ります。
その上、Gnomeセッションを復元したときに、仮想コンソールを終了するのを何度か忘れました。したがって、Gnomeで画面をロックすると、GUIのみがロックされるため、離れるとコンピュータは完全に保護されなくなります。ユーザーは仮想コンソールに切り替えて、私のgnomeロック画面を強制終了するか、そうでなければ私のコンピューターを台無しにする可能性があります。
ターミナルアプリセッションを無期限に非アクティブのままにして、組み込みの仮想コンソールにのみタイムアウト値を設定できますか?
グラフィカル端末で実行しているかどうかを確認し、実行していない場合はTMOUT
のみを設定できます。これを行う簡単な方法は、tty
コマンドです。
tty - print the file name of the terminal connected to standard input
GUIターミナルエミュレータから実行する場合:
$ tty
/dev/pts/5
仮想コンソールから実行する場合:
$ tty
/dev/tty2
したがって、これらの行を~/.profile
に追加すると、10分後にbashセッションが強制終了されます。
tty | grep tty >/dev/null && TMOUT=600
これは、pam_env.so
PAMモジュールの良いケースです。仮想コンソールのログインはlogin
プログラムを使用するため、/etc/pam.d/login
を開いて、次のような行を追加できます。
session required pam_env.so readenv=1 envfile=/etc/vc-environment user_readenv=0
付随する新しいファイルとともに、/etc/vc-environment
:
TMOUT=600
これにPAMを使用する2つの利点:
TMOUT
を変更することはできません)。Sudo
などの他の特定のサービスにも適用できます。ここを読んでください このモジュールの詳細については。
私はTMOUTソリューションが好きではありませんでした。まず、プロンプトでセッションを終了した場合にのみ機能するためです。 Vim内に置いたままにしたり、Sudoパスワードプロンプトを表示したりしても、タイムアウトにはなりません。次に、グラフィカル環境と同じように、セッションを閉じたくない、ロックしたい。
GNU Screenはアイドル期間の後にロックできるので、私は次のことを行いました。 ~/.bashrc
の冒頭で、これを追加しました。
if [ "$TERM" = "linux" ] && tty | egrep -q '^/dev/tty[[:digit:]]+$'
then
exec screen -c ~/.ttyscreenrc
fi
exec
は、screen
がBashを置き換えることを保証し、終了するとTTYセッションが閉じられるため重要です。
そして~/.ttyscreenrc
に私はこれを置きました:
startup_message off
idle 180 lockscreen
Screenのウェルカム画面をスキップし、3分間操作がないとロックします。