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

推薦する

MySQL テーブルを作成するためによく使用される SQL ステートメントの概要

最近、私はプロジェクトに取り組んでおり、背景を記述するために SQL ステートメントを使用する必要が...

Vue2 における 12 種類のコンポーネント通信

目次1. 小道具2..同期3.vモデル4.参照5. $emit/v-on 6. $attrs/$li...

CentOS8 デプロイメント LNMP 環境で mysql8.0.29 をコンパイルしてインストールする方法の詳細なチュートリアル

1. 前提条件何度かインストールしているので、エラーについてはこれ以上説明しません。ちょっとわかりに...

Mac に mysql5.7 をインストールするための完全な手順 (画像とテキスト付き)

最近、Mac システムを使用して、ローカル Web サーバー環境を構築する準備をしていました。 Ma...

MySQL データのバックアップと復元のサンプル コード

1. データのバックアップ1. mysqldumpコマンドを使用してバックアップするmysqldum...

mysql 起動時の ERROR 2003 (HY000) の問題を解決する方法

1. 問題の説明MYSQL を起動すると、図に示すように、「ERROR 2003 (HY000): ...

HTML 代替カラーコードを実現する n 通りの方法 サンプルコード

この記事では、主に HTML のサンプル コードを紹介し、次のように交互に色を変更する方法を共有しま...

CSS3 でシンプルな白い雲が浮かぶ背景効果を実現

これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...

Vueパンくずコンポーネントのカプセル化方法

Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。効果を達成す...

MySQL 5.7.21 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...

Linux (CentOS) システムで MySQL データベース ディレクトリの場所を変更する方法

CentOS システムで MySQL データベース ディレクトリの場所を変更する方法1. まず、My...

Win2008 サーバー セキュリティ チェック手順ガイド (日常のメンテナンス手順)

ドキュメントはしばらく前から書いていましたが、アップロードする勇気がありませんでした。サーバーのセキ...

JavaScriptの浅いコピーと深いコピーについての簡単な説明

目次1. 直接譲渡2. 浅いコピー3. ディープコピー1. JSONオブジェクトメソッド2. 再帰コ...

CSS3は背景画像にマスクを設定し、マスクスタイルの継承の問題を解決します。

多くの場合、透明度の設定やぼかしなど、写真の背景を加工する必要があります。 ただし、背景画像が配置さ...

MySQLクエリステートメントの簡単な操作例

この記事では、例を使用して、MySQL クエリ ステートメントの簡単な操作を説明します。ご参考までに...