Inter-process-communication-process-groups-sessions-job-control
プロセスグループ、セッション、ジョブ制御
この章では、プロセスグループ、セッション、およびジョブ制御に精通します。
プロセスグループ-プロセスグループは、1つ以上のプロセスの集合です。 プロセスグループは、同じプロセスグループ識別子(PGID)を共有する1つ以上のプロセスで構成されます。 プロセスグループID(PGID)は、プロセスIDと同じタイプ(pid_t)です。 プロセスグループにはプロセスグループリーダーがあります。これは、グループを作成し、そのプロセスIDがグループのプロセスグループIDになるプロセスです。
セッション-さまざまなプロセスグループのコレクションです。
ジョブコントロール-これにより、シェルユーザーは複数のコマンド(またはジョブ)を同時に実行できます。1つはフォアグラウンドにあり、残りはすべてバックグラウンドにあります。 ジョブをフォアグラウンドからバックグラウンドに、またはその逆に移動することもできます。
これをシェル(BASH)を使用したプログラム例の助けを借りて理解しましょう。
- basic_commands.shという名前の基本的なコマンド(date、echo、sleep、cal)を実行するシェルスクリプト(BASH)
- 基本コマンド(ps、echo)を実行するためのシェルスクリプト(BASH)
chmodコマンドを使用して、ファイルに実行権限を付与します。 デフォルトでは、通常のファイルは読み取りおよび書き込み権限のみを取得し、実行権限は取得しません。
現在実行中のプロセスを停止するには、CTRL + Zを入力する必要があります。 これにより、ジョブ番号が得られます。 ジョブは、フォアグラウンドまたはバックグラウンドで再開できます。 必要に応じて、フォアグラウンドでジョブを再開するには、「fg」コマンドを使用します。 必要に応じて、バックグラウンドでジョブを再開するには、「bg」コマンドを使用します。 これを使用すると、最後に停止したプロセスのみが実行されます。 最後に停止したプロセス以外を開始したい場合はどうしますか? fgまたはbgの後にジョブ番号を使用するだけです(たとえば、bg%2またはbg%3など)。 実行中のジョブがバックグラウンドにある場合、他のタスクをフォアグラウンドで実行できます。 ジョブのリストを取得するには、コマンド、ジョブを使用します。 CTRL + Cまたはkillコマンドを使用してプロセスを終了することもできます。 killコマンドの使用中にジョブ番号を渡すことができます。
ジョブの停止、フォアグラウンドからバックグラウンドへのジョブの移動、ジョブの終了などを示す次の出力を確認してください。