私はこれが非常に基本的な質問であると確信しています。これを容易にすることは可能だと思いますtmux
が、正確なステップはよくわかりません。
私のユースケースは次のとおりです
私はデスクトップに座ってSSH経由でサーバーに接続しています。長期実行プロセスを開始しました。他のタスクを実行している間、プロセスはサーバー上で実行され続けます(ただし、この時点では必ずしもサーバーから切り離されているわけではありません)。
今私はラップトップを使用しています。 (ランチに行くとします。)同じサーバーにSSHを介して接続し、デスクトップに表示されているのと同じコンソール出力を確認し(そこにいた場合)、同じ実行中のアプリケーションにいくつかのキーストロークを送信する必要があります。デスクトップSSHセッションにあるかのように対話する必要があります。完了したら、このセッションを切り離し、アプリケーションがサーバー上で実行を続行できるようにします。
後で作業中にデスクトップで確認しましょう。仕事が終わったら仕事をやめて家に帰ります。 (現在のサーバーのプロセスに接続されているセッションはありません。)自宅でサーバーに接続し、同じ実行中のアプリケーションに接続し、画面に何があるかを確認し、いくつかのコマンドを送信することもできます。
tmux
ターミナルの多重化に焦点を当てすぎているようで、これまでに見つけた回答やチュートリアルではユースケースは説明されていません。私のユースケースはほぼ反対のようです。画面の前に座って複数のサーバーに接続する必要はありません。私は1つのサーバーで作業していますが、複数の異なるコンピューターで接続し、時には同時に複数の接続が開いているか、接続がまったくない場合があり、サーバー上で長い間実行されているアプリケーションと対話することに焦点を当てています。
サーバーに接続し、コンソールアプリケーションを起動し、同じアプリケーションに接続し、異なる複数のシステムで同じコンソール出力を確認する手順は何ですか?
また、tmux
クライアントとサーバーの両方をインストールする必要がありますか?
答え1
私は使用することにしました。それが私の要件を満たしているとはtmux
思わない。試してnohup long-running-process &
みましたtmux
が、期待どおりに動作します。マイユースケースでは、tmux
サーバーにインストールするだけです。
私は机に座って働いています:
$ssh my_server
$tmux new-session -s my_session_name
$application_name #長期実行アプリケーションを起動し、コンソールで出力を表示する今私はラップトップを使用しています。 (私は昼食を食べに行くと仮定します。):
$ssh my_server
$tmux Attach-session my_session_name
同じ application_name のコンソール出力の表示
必要に応じてキーストロークを実行する
ctrl-b d#tmux
セッションの分離一日の終わりに、私はそれから離れて家に帰ります。
ctrl-b d
$ 終了自宅でサーバーに接続します。
$ ssh my_server
$ tmux Attach-session my_session_name
application_name のコンソール出力の表示
必要に応じてキーストロークを実行
ctrl-b d
$ 終了
翌朝出勤するときも同じ方法で再接続してください。