<?php
pcntl_async_signals(true);
// função de manipulação de sinal
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
// manipula tarefas de desligamento
exit;
break;
case SIGHUP:
// manipula tarefas de reinicialização
break;
case SIGUSR1:
echo "Capturado SIGUSR1...\n";
break;
default:
// manipula todas as outras tarefas
}
}
echo "Installing signal handler...\n";
// configure manipuladores de sinal
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");
// ou use um objeto
// pcntl_signal(SIGUSR1, array($obj, "do_something"));
echo "Gerando sinal SIGUSR1 para si mesmo...\n";
// envia SIGUSR1 ao ID de processo atual
// funções posix_* requerem a extensão posix
posix_kill(posix_getpid(), SIGUSR1);
echo "Feito\n";
?>