リモートで共有サーバーに接続しており、リモートコンピュータでコード行の実行を自動化したいと思います。今後接続を閉じます(たとえば、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