【Linux】時間がかかる処理を裏で動かすscreenコマンド

公開日:2019-05-18
最終更新:2019-05-19
※この記事は外部サイト(https://shikiyura.stars.ne.jp/blog/linux/l...)からのクロス投稿です

こんにちは、しきゆらです。
今回は、screenコマンドを知ったのでメモしておきます。

Linux等を触っていると、時々時間がかかる処理を走らせることがありますよね。
私の場合は、aptやyum、dnf等のパッケージマネージャでのアップデート関係やrbenvなどで環境を整えるときなどです。
このようなコマンドをSSH越しに実行しているときに、途中で接続が切れると悲しいことになりますよね。

そんなことが起きても大丈夫なようにしてくれる魔法のコマンドが「screen」コマンドです。
できることはいくつかあるようですが、よく使うのがセッションの管理でしょう。
今回は、簡単に使い方をまとめておきます。

簡単なイメージ

誤解や実際とは異なるかもしれませんが、簡単にscreenコマンドのイメージをメモしておきます。
screenコマンドは、その名前の通り仮想的にスクリーン(ターミナル)を作成し、それを切り替えることができるようなコマンドです。
メインターミナルからscreenコマンドから仮想ターミナルを作成し、仮想ターミナルを通してコマンドを実行していきます。


簡単な図を作成してみました。
左側が仮想ターミナルを使ったイメージ、右側がターミナルから直接操作しているイメージです。

重たい処理や時間がかかる処理を行う場合は、仮想ターミナルから実行して仮想ターミナルからメインターミナルに戻ることでほかの作業を進めることができます。
またSSH等で接続している場合は、接続が切れるとログアウト状態になるのか作業がその時点で止まってしまいます。
途中の場合は、未完了でもう一度作業を行わなければいけません。

仮想ターミナルから作業を行う場合は、仮想ターミナルが常に開いている状態になるのでメインのターミナルが落ちたとしても仮想ターミナルに接続しなおせば途中から作業を再開することができるわけですね。
SSHが切れたとしても、再接続して仮想ターミナルに再度接続することで作業を継続することができるわけです。

なお、SSHをした先でscreenコマンドを実行しないと恩恵はないかと思います。
あくまでセッションを管理しているだけなので、仮想ターミナルのSSH接続が切れてしまうと結局意味ないので、SSHで接続した先でscreenコマンドを実行しましょう。

使い方

新しいセッションの作成

使い方は、screenとコマンドで打つだけ。これだけで新しいセッションを作成してくれます。
これで、仮想ターミナルを作成して接続してくれます。
この中での作業は、途中で接続が切れたとしても裏で動き続けてくれます。

セッションの中断

仮想ターミナルからメインターミナルに戻るには、「C-a C-d」で戻れます。
C-aはEmacsと同じようにCtrlを押しながらaを押します。

セッションの再開

作成したセッションはscreen -lsで一覧を見ることができます。
それぞれのセッションには、IDが割り振られています。
screen -lsを実行するとIDが表示されるので、screen -r <ID>で再開することができます。
なお、セッションが1つしかない場合はIDを省略してscreen -rだけで再開することができます。

まとめ

今回は、screenコマンドを知ったので簡単な使い方をメモしました。
使い慣れないコマンドですが、かなり便利なので今後使っていこうと思います。
なお、screenコマンドはもっとできることがあります。
詳しいことは、以下のリンクから見ていただければと思います。

今回はここまで。
おわり。

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
頭は記憶リムーバブルデバイス

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする