3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

フォアグランドとバックグランドのジョブの切り替え

Last updated at Posted at 2019-04-17

はじめに

LinuxのCGIでフォアグラウンドジョブとバックグランドジョブと、ジョブを切り替えて作業をする方法についてまとめてみました。

環境

Ubuntu 16.04.6 LTS

内容

まずは、Rubyで作成してプログラム(ジョブ)を普通にフォアグランドで実行します。

./test.rb

実行中のプログラム(ジョブ)を停止する場合は、Ctrl + z

ジョブが停止している事の確認を行います。

jobs
[1]+  停止                  ./test.rb

ジョブ番号と一緒にプロセス番号も表示したい場合は、オプションを指定します。21407がプロセスIDになります。

jobs -l
[1]+ 21407 停止                  ./test.rb

ちなみにだが、プロセスIDのみを表示する場合。

ps -a
  PID TTY          TIME CMD
22625 pts/8    00:00:28 ruby
22858 pts/8    00:00:00 ps

停止中のジョブをフォアグランドで再開する場合は、ジョブ番号を指定して再開します。[1]がジョブ番号になります。ちなみに、fg 1だけでも動きます。

fg %1

実行中のジョブを強制的に終了する場合はCtrl + c。ただし、余程の事情がない限り、あまりしない方がいいと思われる。

停止中のジョブをバックグラウンドで再開する場合。

bg %1

バックグラウンドでジョブが動いている状態で、jobsを打つと、確かに実行中である事が確認できます。ジョブの後ろに**&**がついている事が、バックグラウンドで動いている事の印になります。

jobs
[1]+  実行中               ./test.rb &

**&**をつけて、最初からバックグラウンドで動かす事もできます。

./test.rb &

バックグラウンドで動いているジョブを一時停止したい場合は、fg %1でフォアグランドにもってきた後に、Ctrl + zする事になります。

バックグラウンドで動いていようと、フォアグランドで動いていようと関係なく、実行中のジョブを強制終了する場合、Ctrl + c以外に、ジョブ番号を指定して終了する事もできます。

kill %1

この後、jobsを打つと、終了した事が表示されます。

jobs
[1]+  Terminated              ./test.rb

killで強制終了する場合は、ジョブ番号を指定する以外に、プロセスIDを指定して強制終了させる事もできます。ジョブ番号の時は**%**を指定したが、プロセスIDの場合は付けない事になります。21407はプロセスIDです。

kill 21407

ちなみにですが、バックグランドで動いているジョブに対し、フォアグランドでコマンドを打ちたい場合は、Enterを押すと、コマンドプロンプトが表示されます。

最後にだが、今、画面で動いているジョブが、フォアグランドなのか、バックグランドなのか確認したい場合は、Enterを押す事になる(と思われます)。Enterを押して、コマンドプロンプトが表示されたら、バックだし、何も反応がなければ、フォアという判断しかしようがないと(思われる)。

3
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?