長時間実行されるコマンドを実行するSSHセッションを開始すると、Ctrl+ C(SIGINT)処理はどうなりますか?
SSHセッションが閉じていることがわかりますが、誰が最初にSIGINTを取得するかわかりません:それは...
リモートの長時間実行コマンド?つまり、(a)リモートコマンドのシグナルハンドラーが呼び出されてリモートコマンドを停止します。(b)コマンドを停止したことを検出したシェルは(c)リモートsshdが停止したシェルを検出し、そのため、接続を閉じます
または
ローカルsshは信号を受信し、接続を閉じます。
(1)は起こっていると思うが、確認したい。
また、この場合のSIGINTのシェル処理で何が起こるかについても不明です。たとえば、私が...
ssh remote 'while true ; do sleep 1 ; date ; done'
およびCtrl+のC場合、リモート接続は切断されます。Ctrl+の後も存続するシェルの下でリモートコマンドを実行する方法はありCますか?つまり、この場合、ループを停止し、リモートシェルで作業を続けることができますか?
ssh remote command
ではなくssh remote
)が(ローカル側で)殺されます。リモート側は、閉じられたソケットの読み取りまたは書き込みを試行するまで、おそらく(OSに応じて)実行を続けます。ctrl-Cを含むすべてのキーストロークをリモートに渡す場合は、を使用しますssh remote
。