<?php
// Verwendung von Ticks benötigt
declare(ticks = 1);
// Signalverarbeitungsfunktion
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
// Aufgaben zum Beenden bearbeiten
exit;
break;
case SIGHUP:
// Aufgaben zum Neustart bearbeiten
break;
case SIGUSR1:
echo "SIGUSR1 abgefangen...\n";
break;
default:
// Alle anderen Signale verarbeiten
}
}
echo "Richte Signalverarbeitung ein...\n";
// Signalverarbeitung einrichten
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");
// oder ein Objekt verwenden
// pcntl_signal(SIGUSR1, array($obj, "do_something"));
echo "Erzeuge signal SIGTERM an mich selbst...\n";
// sende SIGUSR1 an die aktuelle Prozess-ID
// Für posix_*-Funktionen wird die Posix-Erweiterung benötigt
posix_kill(posix_getpid(), SIGUSR1);
echo "Fertig\n"
?>