win32_create_service
(PECL win32service SVN)
win32_create_service — SCM データベースに新しいサービスのエントリを作成する
説明
パラメータ
-
details -
サービスの詳細情報を含む配列。
-
service -
サービスの短い名前。net コマンドでサービスを 制御する際に、この名前を使用します。この名前は一意である(同名の サービスが 2 つ存在することがない)必要があり、スペースを含む 名前は可能な限り避けるべきです。
-
display -
サービスの表示名。これは、サービスアプレットに表示される名前です。
-
description -
サービスの長い名前。これは「サービス」アプレットで表示される名前です。
-
user -
サービスを実行するユーザー名。指定しなかった場合、サービスは LocalSystem アカウントで実行されます。ユーザー名が指定された場合、 password も指定する必要があります。
-
password -
userに対応するパスワード。 -
path -
サービスの開始時に起動される実行モジュールのフルパス。 指定しなかった場合、現在の PHP プロセスへのパスが使用されます。
-
params -
サービスの開始時に渡されるコマンドラインパラメータ。 PHP スクリプトをサービスとして実行したい場合は、最初のパラメータは 実行するスクリプトへのフルパスとなります。 スクリプト名やパスにスペースを含む場合は、PHP スクリプトへのフルパスを " で囲まなければなりません。
-
load_order -
load_order を制御します。現時点では完全にはサポートされていません。
-
svc_type -
サービスの型を指定します。指定しなかった場合、デフォルト値は
WIN32_SERVICE_WIN32_OWN_PROCESSです。 よくわからない場合はこの値を変更しないでください。 -
start_type -
サービスをどのように開始させるかを指定します。デフォルトは
WIN32_SERVICE_AUTO_STARTで、これは マシンの起動時にサービスを開始させることを意味します。 -
error_control -
サービスに問題が発生した際にとるべき行動を SCM に指示します。 デフォルトは
WIN32_SERVER_ERROR_IGNOREです。 この値を変更することは、現時点では完全にはサポートされていません。 -
delayed_start -
delayed_startをTRUEにすると、 他の自動起動サービスが開始したあとで少し間をおいてサービスが起動するようになります。任意のサービスに対してこれを指定することができますが、そのサービスの
start_typeがWIN32_SERVICE_AUTO_STARTでない場合は何の効果も及ぼしません。この設定が使えるのは、Windows Vista および Windows Server 2008 以降のみです。
-
base_priority -
プロセッサの使用状況への影響を考慮すると、 ベース優先度は通常より低めに設定しておかなければなりません。
base_priorityには、 Win32 ベース優先度クラス で定義された定数のいずれかを設定します。
-
-
machine -
オプションで、サービスを作成したいマシン名を指定します。 指定しなかった場合は、ローカルマシンを使用します。
返り値
成功した場合に WIN32_NO_ERROR を返します。パラメータに問題がある場合は FALSE、失敗した場合は Win32 エラーコード を返します。
例
例1 win32_create_service() の例
'dummyphp' というショートネームのサービスを作ります。
<?php
$x = win32_create_service(array(
'service' => 'dummyphp', # サービスの名前
'display' => 'sample dummy PHP service', # 短い説明
'description' => 'This is a dummy Windows service created using PHP.', # 長い説明
'params' => '"' . __FILE__ . '" run', # スクリプトへのパスとパラメータ
));
debug_zval_dump($x);
?>