Модуль Event умеет отслеживать сигналы в стиле интерфейса POSIX.
  Обработчики для сигнала создают через
  метод Event::__construct()
  с флагом
  Event::SIGNAL
  или фабричный метод
  Event::signal().
 
Пример #1 Пример обработки сигнала SIGTERM
<?php
/*
Запуск в окне терминала:
$ php examples/signal.php
В другом терминальном окне отыщите этот процесс
и отправьте процессу сигнал SIGTERM:
$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976
В первом терминале появится следующее:
Пойман сигнал 15
*/
class MyEventSignal
{
    private $base, $ev;
    public function __construct($base)
    {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->add();
    }
    public function eventSighandler($no, $c)
    {
        echo "Пойман сигнал $no\n";
        $this->base->exit();
    }
}
$base = new EventBase();
$c    = new MyEventSignal($base);
$base->loop();
?>Обратите внимание, callback-функции запускаются внутри событийного цикла после получения сигнала, поэтому для них безопасно вызывать функции, которые лучше не запускать из стандартных обработчиков сигналов интерфейса POSIX.
Дополнительную информацию даёт раздел » Fast portable non-blocking network programming with Libevent, Constructing Signal Events.