画面に接続するときの-rと-xの違いは何ですか?

画面に接続するときの-rと-xの違いは何ですか?

今日、私は友人と私が画面に接続するために異なる方法を使用していることを発見しました。私はテーブルを使用していて、-x彼は-r.manページを読んだが、他の結果を生成するテストケースを思いつくことはできません。

同じアカウントで2つのコンソールを開き、-rを使用して正常に接続しました-x

これらのコマンドの違いは何ですか?

すでに接続されているのと同じ画面に接続しようとすると、他のエラーメッセージのみが表示されます。

$ screen -r 1486
There is no screen to be resumed matching 1486.

そして

$ screen -x 1486
Attaching from inside of screen?

答え1

https://www.gnu.org/software/screen/manual/screen.html#Invoking-Screen

-xすでにセッションに接続している場合でも、セッションに接続してください。

-r現在セッションに接続されているクライアントがない場合にのみセッションに接続します。

テストしたい場合(現在実行中のテストがスクリーンセッション内でスクリーンセッションに接続しようとしているように聞こえるので、絶対に実行しないでください)、2つの別々のターミナルセッションが必要です。 。まず、screenを実行してscreenセッションを開始して接続します。 2番目は次のことを行いますscreen -r

screen -r
There is a screen on:
    562503.pts-2.E595   (Attached)
There is no screen to be resumed.

これでこれを行うscreen -xと、セッションに接続します。 2 つの端末を並べて配置すると、1 つの端末で実行する操作が別の端末でも表示されることがわかります。

つまり、-r分離されたセッションを接続する場合は、-x別のセッションを分離せずに接続されたセッションに接続することです。

関連情報