デスクトップからサーバーへのSSH経由で接続し、プログラムXを実行し、後でラップトップからサーバーへのSSH経由でXと対話します。

デスクトップからサーバーへのSSH経由で接続し、プログラムXを実行し、後でラップトップからサーバーへのSSH経由でXと対話します。

私はこれが非常に基本的な質問であると確信しています。これを容易にすることは可能だと思いますtmuxが、正確なステップはよくわかりません。

私のユースケースは次のとおりです

私はデスクトップに座ってSSH経由でサーバーに接続しています。長期実行プロセスを開始しました。他のタスクを実行している間、プロセスはサーバー上で実行され続けます(ただし、この時点では必ずしもサーバーから切り離されているわけではありません)。

今私はラップトップを使用しています。 (ランチに行くとします。)同じサーバーにSSHを介して接続し、デスクトップに表示されているのと同じコンソール出力を確認し(そこにいた場合)、同じ実行中のアプリケーションにいくつかのキーストロークを送信する必要があります。デスクトップSSHセッションにあるかのように対話する必要があります。完了したら、このセッションを切り離し、アプリケーションがサーバー上で実行を続行できるようにします。

後で作業中にデスクトップで確認しましょう。仕事が終わったら仕事をやめて家に帰ります。 (現在のサーバーのプロセスに接続されているセッションはありません。)自宅でサーバーに接続し、同じ実行中のアプリケーションに接続し、画面に何があるかを確認し、いくつかのコマンドを送信することもできます。

tmuxターミナルの多重化に焦点を当てすぎているようで、これまでに見つけた回答やチュートリアルではユースケースは説明されていません。私のユースケースはほぼ反対のようです。画面の前に座って複数のサーバーに接続する必要はありません。私は1つのサーバーで作業していますが、複数の異なるコンピューターで接続し、時には同時に複数の接続が開いているか、接続がまったくない場合があり、サーバー上で長い間実行されているアプリケーションと対話することに焦点を当てています。

サーバーに接続し、コンソールアプリケーションを起動し、同じアプリケーションに接続し、異なる複数のシステムで同じコンソール出力を確認する手順は何ですか?

また、tmuxクライアントとサーバーの両方をインストールする必要がありますか?

答え1

私は使用することにしました。それが私の要件を満たしているとはtmux思わない。試してnohup long-running-process &みましたtmuxが、期待どおりに動作します。マイユースケースでは、tmuxサーバーにインストールするだけです。

  1. 私は机に座って働いています:

    $ssh my_server
    $tmux new-session -s my_session_name
    $application_name #長期実行アプリケーションを起動し、コンソールで出力を表示する

  2. 今私はラップトップを使用しています。 (私は昼食を食べに行くと仮定します。):

    $ssh my_server
    $tmux Attach-session my_session_name
    同じ application_name のコンソール出力の表示
    必要に応じてキーストロークを実行する
    ctrl-b d#tmux
    セッションの分離

  3. 一日の終わりに、私はそれから離れて家に帰ります。

    ctrl-b d
    $ 終了

  4. 自宅でサーバーに接続します。

    $ ssh my_server
    $ tmux Attach-session my_session_name
    application_name のコンソール出力の表示
    必要に応じてキーストロークを実行
    ctrl-b d
    $ 終了

翌朝出勤するときも同じ方法で再接続してください。

関連情報