win32_start_service_ctrl_dispatcher
  (PECL win32service >=0.1.0)
win32_start_service_ctrl_dispatcher — Registra un script con SCM, por lo que puede ser interpretado como un servicio con el nombre dado
  
 
  Descripción
  
   win32_start_service_ctrl_dispatcher(
string $name, 
bool $gracefulMode = true): 
void 
  
  
   Una vez iniciado, el proceso del servicio debe hacer dos cosas. La primera es
   informar al Service Control Manager que el servicio está en ejecución. La segunda
   es llamar a la función win32_set_service_status() con la constante
   WIN32_SERVICE_RUNNING. Si necesita lanzar procesos largos antes
   de que el servicio se inicie, puede usar la constante
   WIN32_SERVICE_START_PENDING. La segunda es continuar
   verificando con el Service Control Manager para determinar si el servicio se
   detiene o no. Esto implica llamar periódicamente a la función
   win32_get_last_control_message() y tratar el código devuelto.
  
  Precaución
   
    Desde la versión 0.2.0, esta función solo funciona en línea de
    comandos. Está deshabilitada en otros casos.
   
   
  
 
 
  Valores devueltos
  
   No se retorna ningún valor.
  
  
    Antes de la versión 1.0.0, retornaba WIN32_NO_ERROR en caso de éxito, false si hay un problema con los parámetros o un Código de Error Win32 en caso de fallo.
  
  
 
  Errores/Excepciones
  
   Antes de la versión 1.0.0, si esta función se utiliza fuera del SAPI "cli", se emitirá
   un error E_ERROR.
  
  
   A partir de la versión 1.0.0, lanzará una
   Win32ServiceException si el SAPI no es
   "cli"
  
  
 
 
  Ejemplos
  
   
    Ejemplo #1 Ejemplo con win32_start_service_ctrl_dispatcher()
    
     Verifica si el servicio funciona bajo SCM.
    
<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
  die("Probablemente no estoy funcionando bajo el Gestionador de Control de Servicio");
}
win32_set_service_status(WIN32_SERVICE_START_PENDING);
// Algunos procesos largos a recuperar mientras el servicio funciona.
win32_set_service_status(WIN32_SERVICE_RUNNING);
while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  # Realice su trabajo aquí.
  # Intente no tomar más de 30 segundos antes de devolver.
}
?>