はじめに
こんにちは!今回はscreenコマンドについて解説します。
screenは複数の仮想ターミナルセッション(ウィンドウ)を1つの接続で管理できるコマンドです。SSH接続を切った後もセッションが保存されるので、いつでも再接続して作業を続けられます。
めっちゃ便利なので、リモートサーバー作業をする人には必須ですよ!
screenコマンドとは
screenは、複数の仮想ターミナルセッションを作成・管理する外部コマンドです。1つのターミナル内で複数のウィンドウを開いたり、セッションをデタッチ(切断)・リアタッチ(再接続)できます。
通常のターミナルと違い、セッションは保存されるため、SSH接続を閉じてもセッション内のプロセスは実行を続けます。複数の作業を並列実行したり、長時間のタスクを任せたりするのに最適です。
基本構文
|
|
セッションを作成し、その中で複数のウィンドウを管理できます。
主なオプション
| オプション | 説明 |
|---|---|
-S name |
セッションに名前を付けて作成 |
-ls |
セッション一覧を表示 |
-r |
デタッチ済みセッションに再接続 |
-d |
セッションを作成後、デタッチ |
-x |
複数接続でセッションを共有 |
-A |
すべてのウィンドウをサイズ調整 |
使用例
例1: 新しいセッションを作成
|
|
実行結果:
|
|
新しいセッションを作成して、その中に入ります。
例2: 名前付きセッションを作成
|
|
実行結果:
|
|
「mysession」という名前のセッションを作成します。
例3: セッション一覧を表示
|
|
実行結果:
|
|
現在のセッション一覧を確認します。
例4: デタッチ済みセッションに再接続
|
|
実行結果:
|
|
デタッチしたセッションに再接続します。
例5: 名前でセッションに再接続
|
|
実行結果:
|
|
セッション名を指定して再接続します。
例6: バックグラウンドでセッション作成
|
|
実行結果:
|
|
セッションを作成し、そのまま別のウィンドウに戻ります。
例7: セッション内でコマンド実行
|
|
実行結果:
|
|
セッション内にコマンドを送信します。
例8: セッション内のウィンドウ一覧
セッション内で Ctrl+a w を押すと、ウィンドウ一覧が表示されます。
例9: 複数ウィンドウでの作業
セッション内で Ctrl+a c を押すと、新しいウィンドウを作成します。
例10: セッションの終了
セッション内で exit を入力するか、Ctrl+a k でウィンドウを閉じます。
Tips・注意点
セッション共有を使う
|
|
複数のユーザーが同じセッションを共有できます。
セッションを保護する
|
|
パスワード保護されたセッションを作成することで、セキュリティを高められます。
セッション名が重複する場合
|
|
セッション IDまで指定して再接続できます。
実践的な使い方
リモートサーバーでの長時間処理
|
|
バックアップを実行しながら、セッションをデタッチして別の作業ができます。
複数タスクの並列実行
|
|
複数のプロセスを同時に実行し、必要に応じてウィンドウを切り替えます。
セッション内でのログ記録
|
|
セッション内のすべての活動を記録できます。
複数の接続元からセッションにアクセス
|
|
複数のユーザーが同じセッションを監視・操作できます。
まとめ
screenコマンドのポイント:
- 複数の仮想ターミナルセッションを管理
- セッションをデタッチ・リアタッチできる
- 基本形:
screen -S sessionname、screen -r sessionname - SSH接続を切ってもセッションとプロセスは保存される
- 複数ウィンドウで並列作業が可能
- よく使う組み合わせ:
screen -S name -d -m bash
リモートサーバーでの作業をしっかりサポートしてくれるコマンド。tmuxの前身として、今でも多くの環境で使われていますよ!