SETSID(2)

名前
setsid - セッション(session)を作成し、プロセス・グループID を設定する

書式
#include <unistd.h>

pid_t setsid(void);

説明
setsid() は呼び出したプロセスがプロセス・グループ・リーダー (process group leader)でなければ新しいセッションを作成する。 呼び出したプロセスは新しいセッションのリーダー、新しいプロセス・グループの プロセス・グループ・リーダーとなり、 tty の制御を持たない。 呼び出したプロセスのプロセス・グループID と セッションID は 呼び出したプロセスの PID が設定される。呼び出したプロセスはこの 新しいプロセス・グループ、この新しいセッションの唯一のプロセスとなる。

返り値
呼び出したプロセスのセッションID

エラー
エラーの場合が -1 が返される。起こりえるエラーは EPERM のみである。 呼び出したプロセスの PID と等しいプロセス・グループID を持つプロセスが 存在する場合に返される。これは、呼び出したプロセスが既に プロセス・リーダーの場合には setsid は失敗することを意味する。

注意
プロセス・グループ・リーダーとはそのプロセスのプロセス・グループID が その PID に等しいプロセスである。 setsid を確実に成功させるためには、 fork して exit し、子プロセスで setsid() を行なえば良い。

準拠
POSIX, SVr4.

関連項目
setpgid(2), setpgrp(2)