ホームページ >運用・保守 >Linuxの運用と保守 >Screen を使用してリモート セッションを管理するにはどうすればよいですか?

Screen を使用してリモート セッションを管理するにはどうすればよいですか?

青灯夜游
青灯夜游転載
2019-03-28 14:20:082350ブラウズ

この記事の内容は、Screen を使用してリモート セッションを管理する方法を紹介することです。一定の参考価値があり、困っている友人は参考にしてください。お役に立てれば幸いです。

ローカルで開発する場合、多くの場合、リモート接続を使用して Linux サーバーに接続する必要があります。最初は、リモートが複数ある限り、SSH ウィンドウをいくつか開きました。この方法は非常に独創的で直接的ですが、常にこの問題の影響を受けます。パスワード入力で十分です。SSH を使用してパスワードなしでログインしても、毎回 SSH コマンドを入力するのはまったく速くないと感じます。また、ウィンドウを開きすぎると、この場合、Linux にはツールがたくさんありますが、今日は screen ツールについて学びましょう。

screen ツールを導入する際に、まず、サーバーに接続した後、長期タスクを実行するときに、リモート接続ウィンドウを閉じるとタスクが強制終了される理由について説明します。

#犯人: SIGUP シグナル

Linux/Unix には、次の概念があります:

  • プロセス グループ: 1 つ以上のプロセスのコレクション。各プロセス グループには一意のプロセス グループ ID があります。

  • ##セッション: 1 つまたは複数のプロセス グループのコレクションには一意のセッション リーダーがあります。 、セッション ID はリーダー プロセス ID です;
  • セッションは、コントロール ターミナルと同じ別個のセッション ターミナルを持つことができます。接続されたセッションの最初のプロセスは呼び出されます。制御プロセス、現在端末と対話しているプロセスはフォアグラウンド プロセス グループと呼ばれ、残りのプロセス グループはバックグラウンド プロセス グループと呼ばれます。
  • ツール POSIX.1 定義:

    ハングアップ信号 (SIGHUP) のデフォルトの動作は、プログラムを終了することです。
  • #端末インターフェイスは、ネットワーク接続が切断されたことを検出すると、制御プロセス (セッションの最初のプロセス) に SIGHUP 信号を送信します。
  • セッションの最初のプロセスが終了した場合、このシグナルはセッションのフォアグラウンド プロセス グループに送信されます;
  • プロセスが終了し、孤立したプロセス グループが生成された場合、孤立したプロセス グループのプロセスが STOP 状態にある場合、SIGHUP および SIGCONT シグナルがプロセス グループに送信され、プロセス グループ内のすべてのプロセスが発生します。
  • したがって、ネットワークが切断されるかウィンドウが閉じられると、制御プロセスは SIGHUP シグナルを受信して​​終了し、これによりセッション内の他のプロセスが終了します。
  • 簡単な例

SSH ターミナル ウィンドウを 2 つ開き、最初のウィンドウで ping コマンドを実行します。

別のターミナル ウィンドウで、ping

のプロセス ID が 22132 であり、その親プロセス ID が 21803 であることを確認します。つまり、zsh にログインします。

Screen を使用してリモート セッションを管理するにはどうすればよいですか?

##ps -xj を使用すると、zsh (PID 21803) へのログインと ping が同じセッションにあり、zsh が最初のプロセスであることがわかります。セッション内では、プロセス グループ PGID は 21803 で、ping のプロセス グループ PGID は 22132 で、これがフォアグラウンド プロセス グループです。

Screen を使用してリモート セッションを管理するにはどうすればよいですか?

この時点で、最初の SSH リモート ウィンドウを閉じると、別のウィンドウで ping プロセスが強制終了されたことがわかりました:

Screen を使用してリモート セッションを管理するにはどうすればよいですか?これは、時間のかかるタスクを実行するときにウィンドウを閉じると、タスクのプロセスが強制終了され、期待どおりにバックグラウンドで実行を継続できないことを示しています。

screen の使用Screen を使用してリモート セッションを管理するにはどうすればよいですか?

screen が何をするかについてこれ以上説明する必要はありません。次のことだけを話しましょう。使い方.バー。 1. screen

コマンドを直接実行します

##screen を実行するための全画面ウィンドウが作成されます。シェル。ウィンドウのタイトルを見ると、このウィンドウが screen

プログラム内にあることがわかります。このウィンドウでは、自由にコマンドを実行できます。終了する場合は、

を入力してください。 exitScreen を使用してリモート セッションを管理するにはどうすればよいですか? コマンド。

2. 新しいウィンドウを開いて別のタスクを実行したい場合は、次のコマンドを実行できます: <pre class="brush:php;toolbar:false">// 方法1 按键盘Ctrl+a +c, 会心打开一个screen窗口 // 方法2 screen 需要执行的任务的命令,比如: screen ping www.baidu.com</pre>3. 複数の screen ウィンドウ切り替え <pre class="brush:php;toolbar:false">方法1 键盘Ctrl+a +[0..9] 方法2 键盘Ctrl+a +n, 下一个screen窗口 键盘Ctrl+a +p, 上一个screen窗口</pre> その他のコマンドについては、以下の図を参照してください:

Screen は、複数のプロセス間で物理端末を多重化できるウィンドウ マネージャーです。Screen にはセッションの概念もあります。ユーザーは、Screen セッションで複数の Screen ウィンドウを作成でき、それぞれの Screen ウィンドウは、実際の SSH 接続を操作しているようなものです窓。

おすすめのビデオ チュートリアル: 「Linux チュートリアル

以上がこの記事の全内容です。皆様の学習に役立つことを願っています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がScreen を使用してリモート セッションを管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。