2
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 3 years have passed since last update.

ジョブの種類についてまとめる

Posted at

ジョブとは

ターミナルが実行している作業のこと。

localhostサーバーを動かす、ログを出力する、ファイルをコピーするなどの操作は全てジョブと呼ばれる。

ジョブの種類

ジョブには大きく分けて3つの種類があり、それぞれフォアグラウンドジョブバックグラウンドジョブ,サスペンドジョブと呼ばれる。

フォアグラウンドジョブ

フォアグラウンドジョブは出力結果がターミナル上に表示されるもののことを言う。

例えばファイルの中身を表示するcatコマンドは結果がターミナルに表示されるのでフォアグラウンドジョブにあたる。

オプションを指定せずに実行したジョブは基本的にフォアグラウンドで処理される。

ターミナルを用いた出力を行うという都合上、処理が完了するまでは他のジョブを実行できないという欠点がある。

バックグラウンドジョブ

処理は行われているものの結果はターミナルに表示されず、裏側で動き続けているジョブのこと。

-dオプションをつけてサーバーを起動した場合などがこれにあたる。

サスペンドジョブ

一時的に処理が中断されているジョブのこと。

再開されるまでの間は処理が止まった状態になるが、それまでターミナルを占有していたジョブがなくなるので他の処理を実行できるようになる。

サスペンドジョブに関するコマンド一覧

現在実行しているジョブの停止
% Ctrl + z
サスペンド中のジョブの一覧表示
% jobs
# 結果
[1]   Stopped                 ping 172.17.0.3
[2]+  Stopped                 ping 172.17.0.3
[3]-  Stopped                 ping 172.17.0.2

左端はジョブのID

ジョブの再開
% fg ジョブID
# ID省略時は+となっているものが実行される
ジョブのバックグラウンド再開
% bg ジョブID
# ID省略時の挙動はfgと同じ

fgやbgで指定されたジョブが起動中だった場合には起動方法の変更のみが行われる(bg⇄fg)。

ジョブの停止に関する注意点

フォアグラウンドジョブに関してはCtrl + zで停止可能。

バックグラウンドジョブに関してはCtrl + zで停止することはできないので、一旦fg IDでフォアグラウンドに切り替えた後にCtrl + zで停止させる。

ジョブの実行方式の切り替えに関する注意点

最後に停止またはフォアグラウンドで起動したジョブに関しては+状態となり、ID指定なしでも起動ができるようになる。

しかしバックグラウンド起動したジョブに関しては最終起動ジョブであっても+状態とならない(既に+のジョブをbg起動した場合は除く)。

このため、bg起動しているジョブを停止させる目的でfgとID指定なしで入力すると、bg起動ジョブが+でなかった場合にはジョブの二重起動となってしまうことになる。

2
1
1

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
2
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?