関数・クラス解説

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);

参考

  • win32_delete_service() - SCM データベースからサービスのエントリを削除する
  • Win32 Base Priority Classes
  • Win32 Recovery action
  • Win32 Error Codes
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール