win32_start_service_ctrl_dispatcher
  (PECL win32service >=0.1.0)
win32_start_service_ctrl_dispatcher — 
   Регистрирует скрипт в Диспетчере управления службами, чтобы он действовал как служба с заданным именем
  
  
 
  Описание
  
   win32_start_service_ctrl_dispatcher(
string $name, 
bool $gracefulMode = true): 
void 
  
  
   После запуска процесс службы выполняет два действия. Первое — сообщает
   Диспетчеру управления службами, что служба запустилась. Для этого вызывают функцию
   win32_set_service_status() с константой WIN32_SERVICE_RUNNING.
   Функцию вызывают с константой WIN32_SERVICE_START_PENDING,
   когда требуется выполнить какой-то длительный процесс до фактического запуска службы.
   Второе — продолжает «отмечаться» в Диспетчере управления службами, чтобы диспетчер определял,
   требуется ли прекратить работу службы. Для этого периодически вызывают
   функцию win32_get_last_control_message() и правильно обрабатывают
   кода возврата.
  
  Предостережение
   
    С версии 0.2.0 функция работает только через SAPI-интерфейс CLI.
    Через другие SAPI-интерфейсы функция не работает.
   
   
  
 
 
  Возвращаемые значения
  
   Функция не возвращает значения после выполнения.
  
  
    До версии 1.0.0 Функция возвращает
WIN32_NO_ERROR
в случае успешного завершения , false, если возникла проблема с параметрами,
или 
код ошибки Win32, если возникла ошибка.
  
  
 
  Ошибки
  
   До версии 1.0.0 при вызове не через SAPI-интерфейс CLI
   функция выдаёт ошибку уровня E_ERROR.
  
   
    С версии 1.0.0 при вызове не через SAPI-интерфейс CLI
    функция выбрасывает исключение Win32ServiceException.
   
  
 
  Примеры
  
   
    Пример #1 Пример использования функции win32_start_service_ctrl_dispatcher()
    
     Проверим, запустили ли сервис в Диспетчере управления службами.
    
<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
    die("Меня, вероятно, не запустили в Диспетчере управления службами");
}
win32_set_service_status(WIN32_SERVICE_START_PENDING);
// Какой-то длительный процесс для обработки и запуска службы
win32_set_service_status(WIN32_SERVICE_RUNNING);
while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    # Здесь выполняются какие-то действия, которые не занимают больше 30 секунд
    # перед переходом в цикл
}
?>