リモートホストが切断された場合、リモートで実行されているプロセスはどうなりますか?

リモートホストが切断された場合、リモートで実行されているプロセスはどうなりますか?

リモートホストにSSHを介して複数のプロセスを開始し、プロセスが終了する前に接続を切断するとします。この過程で何が起こりますか?

続きますか?

答え1

プロセスはsshを介して開いたシェルの子プロセスであるため、シェルからログアウトするとすぐに(切断)、プロセスは終了します。

この問題を解決するには、さまざまな方法を使用できます。

  1. nohup以下を使用してプログラムを起動し(中断せずに)キャンセルします。

    nohup somecommand &
    disown %1
    

    出力パイプを(との間)$PWD/nohup.out削除する場合は、すべての出力をファイルにリダイレクトします。/dev/nullsomecommand&

  2. GNU Screenやtmuxなどの端末マルチプレクサを使用してください。

    tmux
    #Inside tmux
    somecommand
    

    Ctrl次に+Bとを使用してtmuxセッションから切り離しますD。これで安全に切断できます。別のシェルで tmux セッションを再開するには、次のようにします。

    tmux a
    

    今、あなたはあなたが去ったシェルに戻ってきました。

関連情報