web-dev-qa-db-ja.com

SSHセッションを復元

SSH経由でサーバーに接続してプロセスを作成しましたが、突然インターネット接続が切断されました。プロセスが進行中であることはわかっていますが、前のセッションを復元して、進行状況を確認するにはどうすればよいですか?

13
Arash Mousavi

上記で提案したように、将来的にはそのようなことを防ぐために画面を使用することができます。画面の使い方の簡単な説明:

  1. screen -S compiling_stuff
  2. ここで物事を行います。例:./configure
  3. 何らかの理由で接続が閉じられた場合は、サーバーに再接続してscreen -r compを発行できます
  4. CTRL+A+Dを押して、スクリーンセッションを自分で切り離すこともできます

幸運を

16

screenは、ターミナルから切断するときに保持されるコマンドを開始するのに最適です(故意に、ctrl + a d、または接続が切断されたためなど)。

ただし実行中のプロセスを再接続できます(まだ実行中の場合は、実行中のセッションのシェル)を現在の端末に接続します(つまり、標準入力、標準出力、キーボードを再接続しますが、新しい端末、そのプロセスの制御端末)を使用: reptyr

両方の長所を活かすには、screenをインストールして起動し、そのスクリーンセッションでreptyrを使用してそのプロセスを再アタッチします。^^

17
Olivier Dulac

できません。将来的には、screenまたはtmuxを使用してこのようなことを防ぐことができます。これらは、切断後にセッションに再接続できるように作成されています。

7
Sven

ちょうど私が言及するだろうと思った http://mosh.mit.edu/

ローミングを可能にし、断続的な接続をサポートし、ユーザーのキーストロークのインテリジェントなローカルエコーとライン編集を提供するリモートターミナルアプリケーション。

MoshはSSHの代替品です。特にWi-Fi、携帯電話、長距離リンクを介して、より堅牢で応答性が高くなります。

5
Jon Conley

後でセッションに再接続するには、ssh経由でscreenを使用します。

私が知る限り、閉じられたsshセッションに再接続する方法はありません。

2
Uwe Plonus

オススメできます 兵部

Byobuは、ターミナルマルチプレクサGNU画面またはtmuxの拡張機能であり、画面上の通知やステータス、およびタブ付きのマルチウィンドウ管理を提供するために使用できます。これは、リモートサーバーに接続するときに、ターミナルセッションのユーザーエクスペリエンスを向上させることを目的としています。

1
Frank Zafka

tmux を使用することをお勧めします:

tmux attachを介してtmuxセッションを復元できます。

tmuxは、複数の仮想コンソールを多重化するために使用できるソフトウェアアプリケーションで、ユーザーは単一のターミナルウィンドウまたはリモートターミナルセッション内で複数の個別のターミナルセッションにアクセスできます。コマンドラインインターフェイスから複数のプログラムを処理する場合や、プログラムを開始したUnixシェルからプログラムを分離する場合に役立ちます。[1] GNU Screenと同じ機能の多くを提供しますが、BSDライセンスの下で配布されます。

1
shyoo