Linux のスクリーンコマンドとその使い方

Linux のスクリーンコマンドとその使い方

画面紹介

Screen は、コマンドライン端末切り替え用に GNU プロジェクトによって開発されたフリーソフトウェアです。ユーザーはこのソフトウェアを使用して、複数のローカルまたはリモートのコマンド ライン セッションに同時に接続し、それらを自由に切り替えることができます。 GNU Screen は、ウィンドウ マネージャーのコマンド ライン インターフェイス バージョンと考えることができます。複数のセッションを管理するための統一されたインターフェースと対応する機能を提供します。

公式サイト: http://www.gnu.org/software/screen/

GUNスクリーン:

Screen 環境では、すべてのセッションが独立して実行され、独自の番号、入力、出力、およびウィンドウ バッファーを持ちます。ユーザーはショートカット キーを使用してさまざまなウィンドウを切り替えることができ、各ウィンドウの入力と出力を自由にリダイレクトできます。

スクリーン構文

$> screen [-AmRvx -ls -wipe][-d <ジョブ名>][-h <行数>][-r <ジョブ名>][-s ][-S <ジョブ名>] -A すべてのウィンドウを現在の端末のサイズに変更します。 -d <ジョブ名> 指定された画面ジョブをオフラインにします。 -h <行数> は、ウィンドウのバッファ行数を指定します。 -m すでにスクリーン ジョブが進行中の場合でも、新しいスクリーン ジョブを強制的に作成します。 -r <ジョブ名> オフライン画面ジョブを復元します。 -R 最初にオフライン ジョブの回復を試みます。オフライン ジョブが見つからない場合は、新しい画面ジョブが作成されます。 -s は、新しいウィンドウを作成するときに実行されるシェルを指定します。 -S <ジョブ名> は画面ジョブの名前を指定します。 -v バージョン情報を表示します。 -x 以前オフラインだったスクリーンジョブを復元します。 -ls または --list は、現在のすべての画面ジョブを表示します。

スクリーンの重要性

screen の重要性は、サーバーがダウンしたり停電したりしない限り、停止することなくサーバー上で常時実行できる点にあります。実際、バックエンドエンジニアは、スクリプトを実行して何らかのデータを処理する必要がある状況によく遭遇しますが、このスクリプトの実行には半日または数日かかる場合があります。Screen は最適な選択です。しばらくしてから、サーバーにログインして実行ステータスと完了したかどうかを確認します。終了せず実行を続けます。

画面の共通パラメータ

screen コマンドには多くのパラメータがあります。ここではよく使用されるものだけを見ていきます。

パラメータ例示する
ls現在の会話をすべて一覧表示する
大文字のSでxxxという名前の新しいセッションを作成します
rシーケンス番号によるプロセスセッションへの接続
dセッションを切断する
-dコマンドと同じですが、画面でユーザーをログアウトします。

各画面セッションでは、すべてのコマンドは ctrl+a で始まります。

パラメータ例示する
Ctrl+広告セッションを切り離し、現在のスクリーンセッションをバックグラウンドに落として実行し、スクリーンに入る前の状態に戻ります。スクリーンは実行を継続し、ログアウトしてもバックグラウンドの実行には影響しません。
Ctrl+ak現在のウィンドウを強制的に閉じる
Ctrl+az現在のセッションをバックグラウンドに置き、fgコマンドで呼び出します。

スクリーンの使用

まず実行に時間がかかるスクリプトコードをシミュレートします

テスト
<?php
スリープ(10000);
エコー111;
?>

プログラムは10000秒間スリープし、その後1111を出力します。

まず画面を作成し、それを実行してログアウトします

スクリーン -S テスト
php テスト.php

test という名前の画面を作成し、その画面に入った後に test.php を実行します。次に、スクリプトを常に画面内で実行し、Ctrl + ad を押してスクリプトを画面のバックグラウンドで実行します。

スクリーン -S テスト
[3934.test から切り離されました]

終了 ログアウトし、しばらく待ってから再度ログインして、スクリプトがまだ実行されているかどうかを確認します。

ssh 
スクリーン -ls
スクリーンは次の場所にあります:
 3934.test (2020/02/25 午後 10:27:06) (分離)

テストの画面IDは3934です。画面に接続して入力します

スクリーン -r 3934
php テスト.php

test.php スクリプトがまだ実行中であることがわかります。

Ctrl+az を実行してスクリプトをバックグラウンドで実行し、その後 fg を使用してフォアグラウンドに移動します。

[1]+ 停止画面 -r 3934
fgを実行する
php テスト.php

screen -dと-Dを見てみましょう

ウィンドウを再度開き、sshして実行する

スクリーン -d 3934
[3934.テストが分離されました。]

次に、前のウィンドウをチェックして、画面が切断されているかどうかを確認します。

スクリーン -r 3934
[3934.test からリモート切断]

最初のウィンドウをもう一度見てください。-D

screen -r 3934

2番目のウィンドウで、-Dを実行します。

スクリーン-D 3934
[3934.テスト電源を切り離しました。]

最初のウィンドウをもう一度見ると、強制的にログアウトされています。

スクリーン -r 3934
[3934.testからリモート電源が切断されました]
127.0.0.1 への接続が閉じられました。

開発者として、通常の開発での使用範囲の 90% 以上を満たすには、3 つのコマンドだけを知っておく必要があります。

スクリーン -ls
スクリーン -S
画面 -R
Ctrl+広告

一般的な画面操作

セッションを作成します (-m 強制):

screen -dmS セッション名
# session_name セッション名

セッションを終了します:

screen -X -S [session # you want to kill] quit

すべてのセッションを表示:

screen -ls

セッションに参加:

screen -r session_name

要約する

Linux の screen コマンドとその使い方に関するこの記事はこれで終わりです。Linux の screen コマンドの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux での screen コマンドの使用方法の詳細な説明
  • Linuxシステムコマンドのscreenコマンドの詳細な説明
  • Linuxのスクリーンコマンドの詳細な説明

<<:  jQueryはシンプルなボタンの色の変更を実装します

>>:  MySQL 5.7.27 のインストールと設定方法のグラフィックチュートリアル

推薦する

ReactのuseEffectクロージャの落とし穴についての簡単な説明

問題コードuseEffectによって発生したクロージャの問題コードを見てみましょう 定数 btn =...

さまざまなブラウザでのhrタグの説明

通常、人事担当者と会うことはめったにありませんが、一度会うと、それが生死を分けることもあります。 H...

MySQL 8.0.11 のインストールと設定方法のグラフィック チュートリアル (win10)

この記事ではMySQL 8.0.11のインストールと設定方法を参考までに記録します。具体的な内容は以...

MySQL binlog_ignore_dbパラメータの具体的な使用法

序文:前の記事を読んだ後、binlog はデータベースで実行されたすべての DDL および DML ...

LinuxでPythonの組み込みバージョンを削除する手順の詳細な説明

大きな落とし穴、Linuxシステムに付属するPythonのバージョンを簡単に削除しないでください1....

Tudou.comのホームページのデザイン方法

<br />私は数年間フロントエンドに取り組んできました。フロントエンドについて完全に理...

Vueプロジェクトが完了した後にプロジェクトを最適化する方法の例

目次1. 開発モードとリリースモードに異なるパッケージエントリポイントを指定する2. 外部CDNリソ...

条件によるMysqlカウントの複数の実装方法を詳細に解説

最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...

W3C が推奨するモバイル Web マークアップ言語 XHTML Basic 1.1

W3C は最近、「 XHTML Basic1.1 」と「 Mobile Web Best Prac...

動的および静的分離を実装するための Nginx サンプル コード

この記事のシナリオと組み合わせて、Nginx と Java 環境 (SpringBoot プロジェク...

Reactは、読み込み、読み込み完了、読み込み失敗の3つの段階の原則分析を実装します。

最近ブログに書いたのですが、プロジェクトリストの中に写真がたくさんあり、最初は読み込みが遅いので、ス...

DockerがElasticsearch7.xを起動してエラーを報告する問題を解決する

Docker実行コマンドの使用docker run -d -p 9200:9200 -p 9300:...

CentOSバージョンにDockerをインストールする際のエラーの解決方法

1. バージョン情報 # cat /etc/system-release CentOS Linux ...

Dreamweaver8を使用してウェブサイトのファイルをチェックして整理する方法

Dreamweaver8 を使用して独自の Web サイトを作成する目的は何ですか?インターネットに...

MySQL データベースの最適化に関する 9 つのヒント

目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...