win32_start_service_ctrl_dispatcher
(PECL win32service >=0.1.0)
win32_start_service_ctrl_dispatcher — Registra o script no GCS, para que ele possa atuar como o serviço com o nome fornecido
Descrição
Quando iniciado através do Gerenciador de Controle de Serviço, um processo de serviço é necessário para "registrar-se" nele para estabelecer monitoramento de serviço e recursos de comunicação. Esta função realiza o registro gerando um thread para lidar com a comunicação de baixo nível com o Gerenciador de Controle de Serviço.
Uma vez iniciado, o processo de serviço deve fazer duas coisas. A primeira é informar
o Gerenciador de Controle de Serviço que o serviço está em execução. Isto é conseguido
chamando win32_set_service_status() com a
constante WIN32_SERVICE_RUNNING
. Se for necessário executar
algum processo demorado antes que o serviço esteja realmente em execução, pode
ser usada a constante WIN32_SERVICE_START_PENDING
. A
segunda é continuar a fazer registro com o Gerenciador de Controle de Serviço para que
ele possa determinar se deve ser encerrado. Isso é conseguido chamando periodicamente
a função win32_get_last_control_message() e manipulando o
código de retorno de forma adequada.
Desde a versão 0.2.0, esta função funciona somente no SAPI CLI. Em outros SAPI, esta função é desabilitada.
Parâmetros
name
-
O nome abreviado do serviço, conforme registrado por win32_create_service().
gracefulMode
-
true
para uma saída normal.false
para saída com erro. Consulte win32_set_service_exit_mode() para obter mais detalhes.
Valor Retornado
Nenhum valor é retornado.
Antes da versão 1.0.0, retornava WIN32_NO_ERROR
em caso de sucesso, false
se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.
Erros/Exceções
Antes da versão 1.0.0, se o SAPI não for "cli"
, esta função emite um
erro de nível E_ERROR
.
A partir da versão, lança uma exceção
Win32ServiceException se o SAPI não for
"cli"
.
Registro de Alterações
Versão | Descrição |
---|---|
PECL win32service 1.0.0 |
Lança uma exceção ValueError em caso de dados inválidos nos parâmetros,
anteriormente retornava false .
|
PECL win32service 1.0.0 | Lança uma exceção Win32ServiceException em caso de erro, anteriormente um Código de Erro Win32 era retornado. |
PECL win32service 1.0.0 | O tipo de retorno agora é void, anteriormente era mixed. |
PECL win32service 0.4.0 |
O parâmetro gracefulMode foi adicionado.
|
PECL win32service 0.2.0 |
Esta função funciona apenas no SAPI "cli" .
|
Exemplos
Example #1 Um exemplo de win32_start_service_ctrl_dispatcher()
Verifica se o serviço está sendo executado no GCS.
<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
die("Provavelmente não estou sendo executado no Gerenciador de Controle de Serviço");
}
win32_set_service_status(WIN32_SERVICE_START_PENDING);
// Algum processo demorado para colocar este serviço em funcionamento.
win32_set_service_status(WIN32_SERVICE_RUNNING);
while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
# faça algum trabalho aqui, tentando não demorar mais do que cerca de 30 segundos
# antes de voltar ao loop novamente
}
?>
Veja Também
- win32_set_service_status() - Atualiza o status do serviço
- win32_get_last_control_message() - Retorna a última mensagem de controle enviada para este serviço
- win32_set_service_exit_mode() - Define ou retorna o modo de saída do serviço em execução atual
- win32_set_service_exit_code() - Define ou retorna o código de saída do serviço em execução atual
- Códigos de Erro Win32