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 のインストールと設定方法のグラフィックチュートリアル

推薦する

2019 年に最も役立ち重要なオープンソース ツール トップ 10

Black Duck の 2017 年のオープンソース調査では、回答者の 77% がオープンソース...

MySQL最新バージョン8.0.17解凍版インストールチュートリアル

個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...

Docker に MySQL と MariaDB をインストールする方法

MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...

効率を向上できる Linux コマンドエイリアス 10 個のまとめ

序文Linux 環境で作業するエンジニアは、これらの面倒な命令とパラメータのコマンドラインにきっと驚...

MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...

VUE と Canvas を使用して Thunder Fighter タイピング ゲームを実装する方法

今日は、サンダーファイタータイピングゲームを実装します。ゲームプレイは非常に簡単です。それぞれの「敵...

HTMLのタグと要素の違いの詳細な説明

ウェブページに慣れていない友人の多くは私と同じように、HTML で要素、タグ、属性がどのように定義さ...

VUEの基本を理解するのに役立つ記事

目次VUEとはVueのコアプラグインVueルーターヴュークスアクシオス要素UI Vue フロントエン...

Dockerコンテナのインポ​​ートとエクスポートに関するチュートリアル

背景Docker の人気は、コンテナの共有と移植が容易であることと密接に関係しています。ユーザーは、...

nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...

Vue バッチ更新 DOM 実装手順

目次シーン紹介深い応答性トリガーゲッターDep.targetを探すゲッターセッター要約するシーン紹介...

ソースコードから、Vue2がデータとメソッドを直接取得できる理由がわかる

目次1. 例: これはデータとメソッドを直接取得できます2. 環境を準備し、ソースコードをデバッグし...

CentOS7 で yum ソースをインストールし、コマンド rz と sz をアップロードおよびダウンロードする方法 (画像付き)

** CentOS7 で yum ソースをインストールし、rz および sz コマンドをアップロー...

VMware vSphere 6.5 インストール チュートリアル (画像とテキスト)

vmware vSphere 6.5 は vSphere ソフトウェアのクラシック バージョンであ...

Tomcat の maxPostSize 設定に関する問題と注意事項

1. maxPostSize を設定する理由は何ですか? tomcat コンテナには送信データのサイ...