win32service Functions
Introductie
The win32service extension is a Windows specific extension that allows PHP to communicate with the Service Control Manager to start, stop, register and unregister services, and even allows your PHP scripts to run as a service.
Afhankelijkheden
Windows NT, Windows 2000, Windows XP or Windows Server 2003. Any version of Windows derived from Windows NT should be compatible.
Installatie
-
You can download php_win32service.dll from https://snaps.php.net/win32/. Choose the PECL_X_X folder that matches you PHP version.
-
Copy the php_win32service.dll into your extension_dir.
-
Load the extension from your php.ini
extension=php_win32service.dll
Voorbeelden
Example#1 Registering a PHP script to run as a service
<?php
win32_create_service(array(
'service' => 'dummyphp', # the name of your service
'display' => 'sample dummy PHP service', # description
'params' => 'c:\path\to\script.php run', # path to the script and parameters
));
?>
Example#2 Unregistering a service
<?php
win32_delete_service('dummyphp');
?>
Example#3 Running as a service
<?php
if ($argv[1] == 'run') {
win32_start_service_ctrl_dispatcher('dummyphp');
while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
# do your work here.
# try not to take up more than 30 seconds before going around the loop
# again
}
}
?>
Voorgedefinieerde constanten
Deze constanten worden gedefinieerd door deze extensie, en zullen alleen beschikbaar zijn als de extensie met PHP is meegecompileerd, of als deze dynamisch is geladen vanuit een script.
- WIN32_SERVICE_CONTROL_CONTINUE (integer)
- WIN32_SERVICE_CONTROL_INTERROGATE (integer)
- WIN32_SERVICE_CONTROL_PAUSE (integer)
- WIN32_SERVICE_CONTROL_STOP (integer)
- WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE (integer)
- WIN32_SERVICE_CONTROL_POWEREVENT (integer)
- WIN32_SERVICE_CONTROL_SESSIONCHANGE (integer)
- WIN32_ERROR_CALL_NOT_IMPLEMENTED (integer)
- WIN32_NO_ERROR (integer)
- WIN32_SERVICE_RUNNING (integer)
- WIN32_SERVICE_STOPPED (integer)
- WIN32_SERVICE_STOP_PENDING (integer)
- WIN32_SERVICE_WIN32_OWN_PROCESS (integer)
- WIN32_SERVICE_INTERACTIVE_PROCESS (integer)
- WIN32_SERVICE_STOPPED (integer)
- WIN32_SERVICE_START_PENDING (integer)
- WIN32_SERVICE_STOP_PENDING (integer)
- WIN32_SERVICE_RUNNING (integer)
- WIN32_SERVICE_CONTINUE_PENDING (integer)
- WIN32_SERVICE_PAUSE_PENDING (integer)
- WIN32_SERVICE_PAUSED (integer)
- WIN32_SERVICE_ACCEPT_NETBINDCHANGE (integer)
- WIN32_SERVICE_ACCEPT_PARAMCHANGE (integer)
- WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE (integer)
- WIN32_SERVICE_ACCEPT_SHUTDOWN (integer)
- WIN32_SERVICE_ACCEPT_STOP (integer)
- WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE (integer)
- WIN32_SERVICE_ACCEPT_POWEREVENT (integer)
- WIN32_SERVICE_ACCEPT_SESSIONCHANGE (integer)
- WIN32_SERVICE_FILE_SYSTEM_DRIVER (integer)
- WIN32_SERVICE_KERNEL_DRIVER (integer)
- WIN32_SERVICE_WIN32_SHARE_PROCESS (integer)
- WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS (integer)
Table of Contents
- win32_create_service — Creates a new service entry in the SCM database
- win32_delete_service — Deletes a service entry from the SCM database
- win32_get_last_control_message — Returns the last control message that was sent to this service
- win32_query_service_status — Queries the status of a service
- win32_set_service_status — Update the service status
- win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name
- win32_start_service — Starts a service
- win32_stop_service — Stops a service