質問 :N 秒間コマンドを実行しなかった場合、Unix コマンド ライン シェルを終了したいと思います。つまり、Linux シェルでアクティビティがない場合に自動的にログアウトする方法は?
答え :bash の TMOUT 変数は、以下で説明するように、N 秒間アクティビティがない場合、シェルを終了します。
# export TMOUT=N
- N は秒単位です。 N 秒間アクティビティがない場合、シェルは終了します。
例 :5 分間アクティビティがない場合、シェルを終了します。
# export TMOUT=300
特定のシェルで 5 分以上活動がない場合、そのシェルは終了します。この手法を使用して GUI セッションからログアウトすることはできません。
man bash から:
TMOUT If set to a value greater than zero, TMOUT is treated as the default timeout for the read builtin. The select command termi‐ nates if input does not arrive after TMOUT seconds when input is coming from a terminal. In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash terminates after waiting for that number of seconds if input does not arrive.
TMOUT は、リモート サーバーに ssh 接続していて、x 秒間何も操作を行わなかったときにリモート サーバーからログアウトしたい場合に便利です。 export コマンドをリモート サーバーの .bash_profile または .bashrc に追加します。