EN JA
SETSID(2)
SETSID(2) Linux Programmer's Manual SETSID(2)

名前

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

書式

#include <unistd.h>
 
pid_t setsid(void);
 

説明

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

返り値

成功すると、呼び出したプロセスの (新しい) セッション ID が返される。エラーの場合は、 (pid_t) -1 が返され、 error にエラーを示す値が設定される。

エラー

EPERM
いずれかのプロセスのプロセスグループ ID が、呼び出したプロセスの PID と等しい。これは、呼び出したプロセスが既にプロセスリーダーの場合には setsid() は失敗することを意味する。

準拠

SVr4, POSIX.1-2001.

注意

fork(2) で作成された子プロセスは、親プロセスのセッション ID を継承する。 execve(2) の前後でセッション ID は保存される。
 
プロセスグループ・リーダーとは、そのプロセスのプロセスグループ ID がその PID に等しいプロセスである。 setsid() を確実に成功させるためには、 fork(2) して exit(2) し、子プロセスで setsid() を行なえば良い。

関連項目

setsid(1), getsid(2), setpgid(2), setpgrp(2), tcgetsid(3), credentials(7)

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2013-02-11 Linux