Show page source of internal22-18-プロセスID #25565

[[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">&#160;</A>
}}}

  *  [internal22-19-関数説明#SECTION02191000000000000000 関数説明]

----

''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1

[[PageNavi(internal22-navi)]]