<?php
pcntl_async_signals(true);
// gestor de señales del sistema
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
// gestión de la extinción
exit;
break;
case SIGHUP:
// gestión del reinicio
break;
case SIGUSR1:
echo "Recibida la señal SIGUSR1...\n";
break;
default:
// gestión de otras señales
}
}
echo "Instalación del gestor de señales...\n";
// Instalación de los gestores de señales
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");
// o bien utilice un objeto
// pcntl_signal(SIGUSR1, array($obj, "hacer_algo"));
echo"Generación de una señal SIGUSR1 a mí mismo...\n";
// envío de SIGUSR1 al identificador de proceso actual
// las funciones posix_* requieren la extensión posix
posix_kill(posix_getpid(), SIGUSR1);
echo "Hecho\n";
?>