mvとして開始された場合:
ssh host mv x y
次にmv、stdoutまたはstderr(エラーメッセージなど)に何かを書き込もうとすると、SIGPIPEを受け取り(そして死ぬ)。
次のようなインタラクティブセッションを開始した場合:
ssh host
mvそこにあるインタラクティブシェルから開始し、によって開始された疑似端末のマスター側sshdが終了すると(ssh終了時にTCP接続を閉じると)、疑似端末のスレーブ側に関連付けられたセッションのリーダー、リモートの対話型シェルで、SIGHUPシグナルを受信します(ハングアップ)。
その信号を受信すると、シェル(あなたが発行していない限りtrap '' HUP)通常は前方その信号、彼らが始めた仕事中のすべてのプロセスに、あなたがいない(と同様に、それを明示的に言われていない限りdisownたりと&|、いくつかのシェルで)。
他のプロセス(などmv)は、そのシグナルを受信すると、それを無視するように指示されていない限り(使用nohupするか、親が無視した場合を除いて)、通常は終了します。
あなたが発行した場合:
trap '' HUP
次に、それを継承した後に開始されたすべてのジョブはSIGHUPを無視します。
シェルは、切断時に送信されるSIGHUP信号で死ぬことはありませんが、stdinがなくなっているため、次のプロンプトで終了します。終了すると、一部のシェルはSIGHUPを(非公開の)ジョブに送信します。後に開始されたものはtrap '' HUPそれを無視し、他は死にます。
要するに、その場合、それが起こらないように事前の予防策をとっていない限り、あなたmvは死ぬでしょう。
次回から回避するためにtcsh、zshまたはを使用している場合bashは、マシンをシャットダウンする前に、を押しCtrl-Zて一時停止しmv、Enter bgを押してバックグラウンドで再開し、それdisownを拒否します。
それとも、使用することができますscreenかtmux。SIGHUPが実行されると、これらはホストターミナルから切り離されますが、エミュレートするターミナルで実行されているアプリケーションはヘッドレスで実行され続けるので、後でセッションを別のターミナルに再接続して、進行状況を確認できますmv。
または使用nohup mvするためにmvSIGHUPに免疫をし、その出力とエラーに行くしているnohup.outあなたは、後で確認することができますファイル。
今、私はあなたの特定のホスティングプロバイダについては知らないが、ときにいくつかと、sshインスタンスに、あなたはあそこシェルセッションを開始していないではなく、添付すでに開始されているセッションにあるコンソールへ、そしてあなたが終了するとき、あなたはそのセッションを終了するのではなく、単にそれから切り離すだけです。つまり、シェルはkillを取得しませんmv。その場合は、psそこから実行するとpid、2つの別々のsshセッションにわたってシェルに同じ結果が得られることがわかります。