web-dev-qa-db-ja.com

UNIXで中断されたジョブはどうなりますか?

発行できます CTRL+Z Unixでジョブを一時停止し、後でfgまたはbgを使用してジョブを復活させます。このように中断されたジョブはどうなるのか理解したいですか?彼らは殺された/終了したのですか?言い換えれば、プロセスの強制終了と一時停止の違いは何ですか?

6
Geek

ジョブは強制終了されず、一時停止されます。それらは一時停止時とまったく同じままです。同じメモリマッピング、同じオープンファイル、同じスレッドなどです。プロセスが再開されるまで何もせずにそこにとどまっているだけです。映画を一時停止するようなものです。中断されたプロセスは、プロセスの状態が実行中ではなく中断されたものとして記録されることを除いて、スケジューラーがCPU時間を与えることを頑固に拒否するプロセスとまったく同じように動作します。

ユーザーの観点からは、ジョブが一時停止されていることを意味します。 CPUを使用しなくなります。ただし、willは、同じ量のRAMを使用し続けます。そのため、fgを使用してフォアグラウンドに戻すことができ、中断したところから続行になります。

ジョブを強制終了してから再起動すると、最初からやり直します。

8
terdon

一時停止すると、カーネルはプロセッサキューへのプロセスを含めません。強制終了されると、プロセスのスタック(メモリ)が解放されます。

1
Willian Paixao