Unix システム上で動作しているプロセスには、0 ~ 30000 までのユニークな pid(プロセス ID)が割り当てられます。 プロセス ID が 1 のものは、最初に立ち上がる init プロセスです(例外として、終了した親プロセスの pid を子プロセスから参照すると 1 が返されます)。
プロセス・グループとは、1 つ以上のプロセスをまとめて扱う仕組みで、個々のプロセスに対してではなく、プロセス・グループに対してシグナルを送ったりすることができます。 プロセス・グループには 1 つのプロセス・グループ・リーダ(プロセス)が存在し、そのプロセス ID (pid) をプロセス・グループ ID (gpid) として使用します(つまり、プロセス・グループ・リーダの pid と gpid は等しくなります)。
プロセス・グループ・リーダではないプロセスをリーダにするには、setpgrp
システムコールを使用します。
プロセス・グループ・リーダがあるターミナルと関連を持っている場合、そのプロセス・グループのすべてのプロセスは同じターミナル・グループに属します。
ターミナルとの接続が切れた場合、そのターミナル・グループ内のすべてのプロセスに SIGHUB
シグナルが送られます。
ログイン名と1対1で対応付けられるユーザを識別するための ID です。
/etc/passwd
を見ると、どのように対応付けられているかが分かります。
子プロセスを生成した場合は、親プロセスの ruid が引き継がれます。
リアル・ユーザ ID のグループ版と考えれば OK です。
/etc/passwd
を見ると、ログイン名と rgid の対応付けが分かります。
ファイルにアクセスできるかどうかを決定するためのカギとなる ID です。
子プロセスは親プロセスの実効ユーザ ID、実効グループ ID を引き継ぎます。
実行した実行ファイルに set-user-id
、set-group-id
ビットが設定されている場合は、その実行ファイルの所有者のユーザ ID、グループ ID が実効ユーザ ID、および、実効グループ ID となります。