kazmax - Linux で自宅サーバー

setsid - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 注意
  7. 準拠
  8. 関連項目

名前

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

書式

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

説明

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

返り値

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

エラー

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

注意

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

準拠

SVr4, POSIX.1-2001.

関連項目

  setpgid (2),  setpgrp (2),  tcgetsid (3)