<?php
pcntl_async_signals(true);
// Функция обработки сигнала
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
// Обработка задач остановки
exit;
break;
case SIGHUP:
// Обработка задач перезапуска
break;
case SIGUSR1:
echo "Получен сигнал SIGUSR1...\n";
break;
default:
// Обработка других сигналов
}
}
echo "Установка обработчиков сигналов...\n";
// Устанавливаем функцию как обработчик сигналов
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");
// или устанавливаем как обработчик метод объекта
// pcntl_signal(SIGUSR1, array($obj, "do_something"));
echo "Генерация сигнала SIGUSR1 для самого себя...\n";
// Отправка сигнала SIGUSR1 самому себе — процессу с текущим идентификатором.
// PHP поддерживает функций семейства posix_* только при загрузке модуля posix
posix_kill(posix_getpid(), SIGUSR1);
echo "Завершено\n";
?>