〜はどう違いますか?(チルドドット)およびSSH接続を終了するときに「終了」


12

SSHセッションでバックグラウンドのX11接続がある場合は常に、sshセッションを終了せ~.exitに使用する必要があります。

ここの違いは何ですか?常にエスケープシーケンスを使用できます~.か?

回答:


7

exit現在のシェルに終了するように伝えます。(X11などのトンネル接続がない場合、アクティブです)sshdがサーバー側で呼び出したプロセスが終了したため、SSHは切断されます。

~. SSHがキャプチャしてすぐに切断する「マジック」エスケープシーケンスです(X11トンネルを含む)。

したがって、いいえ、これらは交換可能ではありません。リモートシェル(またはリモートで実行されているプログラム)を正常に終了する場合は、それに応じて終了する必要があります。


5

それはすでに他の答えでよく説明されていますが、私はいくつかの背景を追加します:

今日の単一のSSH接続には、複数のセッション(シェル、コマンド)、TCP転送チャネル、X11転送チャネルを含めることができます。そして、違いがあります:

  • 書き込みexit(またはCtrl+ D)はセッションチャネルを破棄しますが、一部のX11チャネルがアクティブな場合(たとえば、によって閉じられないgvimクリップボードとタイトルを処理するXサーバーへの接続をいくつか残しますexit)。書き込みをexit行うと、このX11アプリケーションが実行されたままになり、ターミナルが閉じるまで「ハング」します。

  • 書く~.ことは全体のつながりを壊します。一部のX11アプリケーションを実行すると、書き込み時にも閉じられることがわかります~.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.