Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all bug

名前

       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.65 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。