(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
Cuando se ejecuta a través del Gestionador de Control de Servicio, un proceso de servicio debe "registrarse" con él para establecer un servicio de supervisión y comunicación eficiente. Esta función realiza el registro iniciando un hilo para manejar las comunicaciones de bajo nivel con el Gestionador de Control de Servicio.
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.
Desde la versión 0.2.0, esta función solo funciona en línea de comandos. Está deshabilitada en otros casos.
name
El nombre corto del servicio, como se registra con win32_create_service().
gracefulMode
true
para la salida correcta. false
para la salida con error. Consulte
win32_set_service_exit_mode() para más detalles.
No devuelve ningún valor.
Antes de la versión 1.0.0, Devuelve WIN32_NO_ERROR
en caso de éxito, false
si hay un problema con los parámetros o Código de error Win32 en caso de error.
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"
Versión | Descripción |
---|---|
PECL win32service 1.0.0 |
Lanzará una ValueError si un argumento es inválido,
anteriormente false era retornado.
|
PECL win32service 1.0.0 | Lanzará una Win32ServiceException en caso de error, anteriormente un Código de error Win32 era retornado. |
PECL win32service 1.0.0 | El tipo de retorno es ahora void, anteriormente era mixed. |
PECL win32service 0.4.0 |
Se añadió el argumento gracefulMode .
|
PECL win32service 0.2.0 | Esta función solo funciona en línea de comandos ("cli" SAPI). |
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.
}
?>