LoginSignup
0
1

More than 5 years have passed since last update.

RedHatのバックグラウンドでコマンドを実行する方法

Last updated at Posted at 2017-06-29

はじめに

大量の画像をアップロードするような処理ですと、コードの実行で何時間もかかり、他の作業に支障をきたすこともあるかと思います。
今回は、何時間かかる処理をRedHatのバックグラウンドでコマンドを実行し、コマンドを実行している間にローカルで別の作業ができる方法を記述しますので、参考にしてください。

RedHatのバックグラウンドでコマンドを実行

RedHatにscreenのインストール

  1. TeraTermでサーバーにログインします。
      
  2. screenをインストールします。
 $sudo yum install screen

java9.png

screenを実行

RedHatでそのままコマンドを実行すると、バックグラウンドで実行した状態にできないので、screen内でコマンドを実行します。

  1. screenを実行しますので、下記をコマンドで実行します。
 $screen

screen1.png

  
2. scrennを実行すると、上部に「screen0」と表示されます。
screen2.png
これでscreenが実行できました。

screen内でコマンドを実行

「screen0」の画面でコマンドを実行します。
今回は、topコマンドを実行します。
top1.png

デタッチ

  1. screen内コマンドを実行中に元の環境に戻る場合は「Ctr+A」→「D」とコマンドで実行します。
    コマンドでたたくと、下図のように「detached from ×××××.pts-×.linux1」と表示されます。
    screen8.png
     
  2. RedHatからデタッチする場合も同様に「Ctr+A」→「D」とコマンドで実行します。
    このままTeraTermを終了します。

アタッチ

  1. TeraTermでRedHatにログインします。
      
  2. RedHatでデタッチ前のscreenに戻る際は、下記を実行します。
 $screen -r

screen12.png
  
3. screenにアタッチすると、コードを実行中のscreenに戻ることができます。
top1.png

複数のscreenからデタッチしている場合の注意事項

複数のscreenにログインしている場合は複数のscreenが表示されますので、下記のようにscreenを指定して、screenに戻ります。
SCREENNAMEには、アタッチするscreenの名前を、「.pts-×.linux1 (Detached)」より前の数字を指定します。

たとえば、「38177.pts-0.linux1」のscreenにアタッチする場合は、「screen -r 38177」と実行します。

 $screen -r SCREENNAME

screen9_1.png

screenから抜ける

screenから抜ける場合は、「exit」とコマンドで実行します。

 $exit

サーバーでコマンド実行中のscreenから抜ける場合は、1回処理を中断してから、「exit」とコマンドで実行します。
たとえば、top画面を開いている場合は、「q」で1回処理を中断してから、「exit」とコマンドで実行します。

screen13.png  
これで、screenから抜けることができます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1