2017-04-19 9 views
1

を持っているどのくらいの時間を検出することが可能ですこのようなスクリプトがあれば、それをデーモンプロセスとすることができます。例えば、私は私のシステムを作ることができ、この操作を行います。
は、私はLinuxのシェル上で働いていると私はちょうど下記のようにトリガーのようなものですスクリプトを記述しようとしていないユーザーのtypeコマンド

if user stops typing command for 2 min 
    shutdown -h now 
fi 

答えて

2

をあなたは注意する必要があります...例えば、コマンド自体は実行に長い2分以上かかる場合はどう?この場合、システムをシャットダウンすることは望ましくない可能性があります。あなたが状態について知っ

この動作を取得する唯一の方法は、シェルアプリケーション内から(ない別のエンティティ/デーモンとして)である、 - 例えば:bashGETTING_COMMAND、またはEXECUTING_COMMAND ...

あなたはTMOUT variableを使用することができます。

TMOUT

ゼロより大きい値に設定した場合、TMOUTは、(Bashの組み込み関数を参照)組み込み読み取りのデフォルトのタイムアウトとして扱われます。入力が端末から来ているときにTMOUT秒後に入力が到着しないと、selectコマンド(条件構文を参照)が終了します。 対話型シェルでは、この値は、プライマリ・プロンプトの発行後に入力行を待機する秒数として解釈されます。完全な入力行が届かない場合、その秒数を待って終了します。

これは、スクリプトが行うreadまたはselectへの呼び出しにも影響することに注意してください。独自のシェルを開発している場合、ユーザの入力をしながら、そしてもちろん、あなたがselect(2)のようなものを使用することができ

export TMOUT=120 
bash 
shutdown -h now 

:このような

何かがあなたが後にしているものだろう。

関連する問題