©
本文档使用 PHP中文网手册 发布
Event can also watch for POSIX-style signals. To construct a handler for a
signal, use
Event::__construct()
constructor with
Event::SIGNAL
flag, or
Event::signal()
factory method.
Example #1 Handling SIGTERM signal
<?php
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 "Caught signal $no \n" ;
$this -> base -> exit ();
}
}
$base = new EventBase ();
$c = new MyEventSignal ( $base );
$base -> loop ();
?>
Note that signal callbacks are run in the event loop after the signal occurs, so it is safe for them to call functions that you are not supposed to call from a regular POSIX signal handler.
See also » Fast portable non-blocking network programming with Libevent, Constructing Signal Events .