関数・クラス解説
win32_create_service
version:PECL win32service >=0.1.0 (公式)SCM データベースに新しいサービスのエントリを作成する
公式リファレンス
書式
win32_create_service ( array $details [, string $machine ] ) : mixed
説明
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 ベース優先度クラス で定義された定数のいずれかを設定します。
- dependencies
- サービスへの依存性を定義します。 サービス名の一覧を配列として設定する必要があるかもしれません。
- recovery_delay
- 失敗時とリカバリアクションの実行の間に取る時間を定義します。 この値はマイクロ秒単位です。 デフォルトは 60000 です。
- recovery_action_1
- 最初の失敗時に実行されるアクションです。 デフォルトの値は WIN32_SC_ACTION_NONE です。 recovery_action_1 は、 Win32 Recovery action で定義された定数のうちのひとつを設定できます。
- recovery_action_2
- 二回目の失敗時に実行されるアクションです。 デフォルトの値は WIN32_SC_ACTION_NONE です。 recovery_action_2 は、 Win32 Recovery action で定義された定数のうちのひとつを設定できます。
- recovery_action_3
- 3回目以降の失敗時に実行されるアクションです。 デフォルトの値は WIN32_SC_ACTION_NONE です。 recovery_action_3 は、 Win32 Recovery action で定義された定数のうちのひとつを設定できます。
- recovery_reset_period
- ここで定義された時間が経過すると、失敗のカウンタがリセットされます。 秒単位で設定します。 デフォルト値は 86400 です。
- recovery_enabled
- リカバリ設定を有効にする場合は TRUE を設定します。 無効にする場合は FALSE を設定します。 デフォルトは FALSE です。
- recovery_reboot_msg
- リブート時に Windows のイベントログに記録されるメッセージを設定します。 アクションを WIN32_SC_ACTION_REBOOT に設定する場合にだけ使ってください。
- recovery_command
- アクションが WIN32_SC_ACTION_RUN_COMMAND に設定された場合に、実行されるコマンドを設定します。
- machine
- オプションで、サービスを作成したいマシン名を指定します。 指定しなかった場合は、ローカルマシンを使用します。
返値
成功した場合に WIN32_NO_ERROR を返します。パラメータに問題がある場合は FALSE、失敗した場合は Win32 エラーコード を返します。
更新履歴
バージョン | 説明 |
---|---|
PECL win32service 0.4.0 | dependencies, recovery_delay, recovery_action_1, recovery_action_2, recovery_action_3, recovery_reset_period, recovery_enabled, recovery_reboot_msg および recovery_command パラメータが追加されました。 |
サンプル
例1 win32_create_service() の例
'dummyphp' というショートネームのサービスを作ります。
$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);
例2 依存性を用いた win32_create_service() の例
依存性がある 'dummyphp' というショートネームのサービスを作ります。
$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', // スクリプトへのパスとパラメータ
'dependencies' => array("Netman"), // 依存性のリスト
));
debug_zval_dump($x);
例3 リカバリ設定を用いた win32_create_service() の例
リカバリ設定がある 'dummyphp' というショートネームのサービスを作ります。
$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', // スクリプトへのパスとパラメータ
'recovery_delay' => 120000, // 2分後に実行されるリカバリアクション
'recovery_action_1' => WIN32_SC_ACTION_RESTART, // 最初の失敗時にサービスを再起動する
'recovery_action_2' => WIN32_SC_ACTION_RUN_COMMAND, // 2回目の失敗時にはコマンドを実行
'recovery_action_3' => WIN32_SC_ACTION_NONE, // その他の失敗時には何もしない
'recovery_reset_period' => 86400, // 1日後には失敗のカウンタをリセット
'recovery_enabled' => true, // リカバリパラメータを有効にする
'recovery_reboot_msg' => null, // 不要ならリブート時のメッセージは定義するな
'recovery_command' => "c:\clean-service.bat", // アクションが WIN32_SC_ACTION_RUN_COMMAND の場合、このコマンドが実行される
));
debug_zval_dump($x);
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール