以下のコマンドを実行して、他のシステムの出力ファイルを監視しています。
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
^C
ログインしている端末を使用して、または単に端末を強制終了することによってsshコマンドを強制終了した場合、リモートコマンドも終了することを期待しています。ただし、これは発生しません。1から/tmp/count
5までのすべての数値を取得しps -ejH
、シェルとそのsleep
子が実行を続けていることを示します。
これは予想される動作であり、どこかに文書化されていますか?無効にできますか?周りから読むと、私はこの種の動作をデフォルトではなく、nohupで明示的に有効にする必要があると予想していました。
私はsshとsshdのmanページを調べましたが、明らかなものは何も見つかりませんでした。Googleは、この動作をオフにするためではなく、オンにするための手順を示しています。
Red Hat Enterprise Linux 6.2を実行していて、両方のシステムでrootログインとbashシェルを使用しています。
-tt
は-t
、代わりに使用してください。-f
またはのようなオプションを介して呼び出した直後にsshがバックグラウンド化された場合、SSHは割り当てられたttyを取得しません-n
。