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

推薦する

MySQL8.0.18 複数マスターと 1 スレーブの構成

目次1. 現実的な背景2. 合意3. マスターを構成する3.1. 起動パラメータの設定3.2. パラ...

CSSファイルをインポートする3つの方法の詳細な説明

CSS を導入する方法には、インライン スタイル、内部スタイル シート、外部スタイル シートの 3 ...

フロントエンドネットワーク、JavaScriptの最適化、開発のヒントについて簡単に説明します。

1. ネットワークの最適化YSlowには23のルールがあります。これら数十のルールは、主に、不要な...

MySQLがファントムリードを解決する方法の詳細な説明

1. ファントムリーディングとは何ですか?トランザクションにおいて、複数のクエリの後に結果セットの数...

MySQL はカスタムシーケンスを使用して row_number 関数を実装します (詳細な手順)

いくつかの記事を読んだ後、ようやく MySQL で row_number() ソートを実装する方法が...

HTML 選択ボックスのプレースホルダーの作成に関する問題

テキスト入力でプレースホルダーを使用していますが、問題なく動作します。しかし、選択ボックスにはプレー...

キーボード上の各種特殊記号の英語読み方(知識の普及)

キーボード文字英語`バッククォート〜チルダ!叫ぶ@で#ナンバーサイン$ドル%パーセント^キャレット&...

Angularが予期しない例外エラーを処理する方法の詳細な説明

前面に書かれたコードがどれだけ適切に記述されていても、すべての可能性のある例外を完全に処理することは...

ウェブページで Enter キーを押すと自動的にフォームを送信し、他のページにジャンプするソリューション

ウェブページでEnterキーを押すと、フォームは自動的に送信され、他のページに移動します。クエリフォ...

Web2.0: 情報過多の原因と解決策

<br />情報の重複、情報過多、情報強迫、パーソナライズされたカスタマイズ、検索エンジ...

Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明

Alibaba Cloud Image Repositoryを使用して外部イメージをダウンロードする...

Linux の crontab タスク スケジューリングの簡単な分析

1. スケジュールタスクを作成する命令crontab -eは現在のユーザーの編集インターフェースに入...

MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ

目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...

CSS3 のメディアクエリと rem レイアウトを組み合わせてモバイル画面に適応

CSS3 構文: (750 ピクセルのデザインの場合、1rem = 100 ピクセル) @media...