SSH接続を閉じる前に自動的にコードを実行する

SSH接続を閉じる前に自動的にコードを実行する

リモートで共有サーバーに接続しており、リモートコンピュータでコード行の実行を自動化したいと思います。今後接続を閉じます(たとえば、Ctrl + Dを押す)。

もっと具体的に言えば、私は去る前にSSHエージェントを終了したかったのですが、私が去った後もまだSSHエージェントが実行されていることがわかったからです。エージェントが他のプログラムによって起動されたので、起動方法を変更するよりも離れる前にエージェントを終了する方が簡単だと思いました。

以下のように任意のコマンドを自動的に実行できますか?今後SSH接続を閉じますか?

# user attempts to close connection

# an arbitrary code or script runs
eval "$(ssh-agent -k)"

# connection is closed

flag() と同じかもしれませんが、-t接続後ではなく切断前に実行されます。ssh -t [email protected] 'cd /some/path; bash -l'

答え1

trap実行.bashrc時間を設定できますシェル終了:

それはまるで

trap 'test -n "$SSH_AGENT_PID" && eval "$(/usr/bin/ssh-agent -k)"' 0

オプションでルーチンを追加.bash_logout

関連情報