[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:プロセスID
}}}
= プロセスID = #SECTION02190000000000000000
各プロセスは識別子としてプロセスIDを持つ。プロセスIDはプロセス生成(fork)時にシステム内でユニークになるようにLinuxカーネルが割り当てる。またプロセスはプロセスIDの他に、プロセスグループID、セッションIDを持つ。
これらのIDは、一般に下図のような使い方をする。このようなプロセスグループの操作を行っているのはshellである。shellを親玉とするセッションを開き、その中で起動するジョブ(パイプで繋げられたコマンド群)毎にプロセスグループを作っている。このあたりの動作shellの種類により様々である。
また、各種デーモン類は他のプロセスからの干渉を防ぐために、一般に独自のセッションを開いている。
プロセスグループID、セッションIDは自由に割り当てられるわけではなく、以下のルールに従わなければならない。
* セッションリーダはプロセスグループリーダを兼ねる。 (セッションリーダはプロセスグループを変更できない)
* セッションの中に複数のプロセスグループを持つ。 自分が新しいプロセスグループ(自分のpidをグループidとする)を 生成可能。またセッション内に存在するどのプロセスグループに 移動することが可能である。
[[Embed(internal22-images:img9.gif)]]
古いBSDシステムではセッションの考え方が無く小さなセキュリティホールになっていた。ジョブコントロール機能が組み込まれる前は、プロセスグループとは現在のUNIXのセッションに相当していた。
----
{{{ html
<A NAME="CHILD_LINKS"> </A>
}}}
* [internal22-19-関数説明#SECTION02191000000000000000 関数説明]
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]