リモートサーバーが接続を終了する前にリモートコマンドを実行します。

リモートサーバーが接続を終了する前にリモートコマンドを実行します。

だからこれを探してみましたが、この問題を解決する方法は見つかりませんでした。私はしばしばsudo権限なしでSSHを介してリモートサーバーに接続します。

リモートサーバーがアクティビティがないか、他の理由で接続をシャットダウン/リセットしたとします。今私が望むのは、リモートサーバーが私の接続を終了する前に、以下を実行する必要があることです。パスワード。リモートサーバーが接続の終了を延長/防止する方法があることを知っていますが、終了する前に私が選択したカスタムコマンドを実行したいと思います。

ベストアンサー1

EXITBashでは、シャットダウン時にシェルがコマンドを実行するようにトラップを設定できます。

trap 'do something here' EXIT

これは^D、end-of-input()によってシャットダウンされたシェル、タイムアウト、をTMOUT使用SIGTERMまたは実行するシェル、SIGHUPSSHクライアントがハングしたSSHを介したリモートシェルに適用されます。

ただし、SSH(または他のネットワーク接続)を介して実行すると、シェルは接続が実際に閉じられるまで接続の閉じに反応できないため、その時点で印刷される内容は決して反対側の端に達しません。コマンドを実行してリモート側の内容を変更できますが、このようなコマンドはpwd内容だけを印刷するだけで便利な操作は行いません。

最後の作業ディレクトリを表示するには、プロンプトでエスケープ\w文字を使用してシェルにそれを印刷させることができます。

おすすめ記事