文字

win32service 函数

Table of Contents

  • win32_continue_service — Resumes a paused service
  • 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_pause_service — Pauses a 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

用户评论:

[#1] brian dot ngure at gmail dot com [2010-04-30 03:03:51]

An example of how it should be done:

<?php

class TestClass {
    private 
$args;

    function 
__construct($arg) {
        
$this->args $arg;
        
$this->run();
    }

    private function 
run() {
        if (
$this->args == 'run') {
            
win32_start_service_ctrl_dispatcher('test_service');

            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
            
}
        }
    }
}

$object = new TestClass($argv[1]);

?>

[#2] me at sylvain tiret besse point fr [2007-11-20 12:45:33]

Just to help a little, the service control command must be in the first script called. If you try to type this portion of code in a separate file and include it, the SCM will not get the controls. 
example :

- file1.inc :
<?PHP
class MyClass{
  
 function 
__construct() {

    
$x win32_start_service_ctrl_dispatcher('service');

    
    while (
WIN32_SERVICE_CONTROL_STOP!=win32_get_last_control_message()){
        
//your code
  
}
}
?>


- service.php :
<?PHP
include("file1.inc");
$object = new MyClass();

?>


WON'T WORK !

上一篇: 下一篇: