【PHP8.x】posix_setsid関数の使い方
posix_setsid関数は、現在のプロセスを新しいセッションのリーダーにする関数です。この関数は、基盤となるシステムコールであるsetsid()
を呼び出し、現在のプロセスを新しいセッションのリーダーに昇格させます。これにより、現在のプロセスは新しいプロセスグループのリーダーとなり、これまでの制御端末との関連が完全に切断されます。制御端末から切り離されることで、ユーザーがシェルを閉じたりログアウトしたりしてもプロセスが終了しない、独立した動作が可能になります。
この機能は、ユーザーインターフェースを持たず、バックグラウンドで継続的に動作するプログラム、いわゆる「デーモンプロセス」を作成する際に特に重要です。例えば、ウェブサーバーやメールサーバーなど、システムサービスとして機能するアプリケーションは、通常、posix_setsid
関数を利用して自身のセッションを開始し、独立した動作環境を確立します。
この関数は引数をとりません。呼び出しが成功すると、新しく作成されたセッションのID(SID)を表す整数値が返されます。セッションIDは、関連するプロセスグループを管理するための識別子です。もし、現在のプロセスがすでにプロセスグループのリーダーである場合や、その他のシステムエラーが発生した場合には、false
が返されます。この関数はPHPのposix
拡張モジュールの一部として提供されており、UNIXライクなシステムでのプロセス管理に利用されます。
基本的な使い方
構文(syntax)
<?php
$session_id = posix_setsid();
?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int|false
posix_setsid 関数は、現在のプロセスを新しいセッションのリーダーにし、そのセッションのフォアグラウンドプロセスグループのリーダーになるように試みます。成功した場合は新しいセッションID(プロセスIDと同じ値)を整数で返します。失敗した場合は false を返します。