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

推薦する

テキストエリアのテキストをHTMLに変換する方法、つまり復帰改行について

説明: テキストエリアの値の改行を新しい行に変更しますコードをコピーコードは次のとおりです。 <...

Nodejs は JSON 文字列を JSON オブジェクトに変換するエラー解決法

JSON 文字列を JSON オブジェクトに変換するにはどうすればいいですか? JSON.parse...

Linux bash: ./xxx: バイナリ ファイルを実行できません エラー

今日、Ubuntu 用の小さなツールを顧客に送りましたが、ユーザーはそれを受け取った後、実行できませ...

HTMLからPDFへのスクリーンショット保存機能の実装

テクノロジーの活用itext.jar: バイト ファイル入力ストリームを画像、PDF などに変換しま...

Ubuntu で起動時に自動的に起動するシェル スクリプトを作成する (推奨)

スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...

ローカルサーバーを構築するためのwebpack-dev-serverの実装

目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...

複雑なSQLクエリを含むMySQLの一般的なSQL文の概要

1. 複雑なSQLクエリ1.1. 単一テーブルクエリ(1)指定の列を選択する[例] 全生徒の生徒ID...

チェックボックスとラジオボタンの配置を実装する方法

ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...

AES_ENCRYPT() と AES_DECRYPT() を使用して MySQL を暗号化および復号化する正しい方法の例

序文最近、仕事でAES_ENCRYPT()関数を使用してプレーンテキストを暗号化し、MySQL に保...

非ルートユーザーを使用してDockerコンテナでスクリプト操作を実行する

アプリケーションをコンテナ化した後、Docker コンテナを起動すると、デフォルトで root ユー...

画像ボタンをフォームのリセットボタンとして使用する方法

フォームを作成するときに、送信ボタンとリセットボタンを配置することがよくあります。ページの外観を考慮...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

スライドボタン効果を実現するネイティブJS

Jsで作ったスライドボタンの具体的なコードは参考までに。具体的な内容は以下のとおりですまずエフェク...

jQueryは画像追従効果を実現します

この記事では、画像フォロー効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...