neutron / signal-handler
一个简化信号处理的库。
1.0.1
2014-01-15 17:24 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is auto-updated.
Last update: 2024-08-25 06:45:58 UTC
README
一个简单的信号处理器,用于管理传入的 POSIX 信号。
它被实现为一个单例,因为 pcntl_signal
只能注册一个回调函数处理每个信号。
使用这个库,你可以根据需要为每个信号注册任意多的回调函数。
有关信号更多信息,请参阅 man signal
。
// mandatory to listen to signals declare(ticks=1); $handler = Neutron\SignalHandler\SignalHandler::getInstance(); $handler->register(array(SIGINT, SIGTERM), function () { echo "stoppin !"; exit(); }); $handler->register(SIGCONT, function () { echo "all systems go..."; });
注册信号处理器
// register a handler for SIGCONT in default namespace $handler->register(SIGCONT, function () { echo "SIGCONT received"; }); // register a handler for SIGCONT in "a namespace" $handler->register(SIGCONT, function () { echo "SIGCONT received"; }, 'a namespace'); // register a handler for SIGCONT in "another namespace" $handler->register(SIGINT, function () { echo "Interrupted !"; exit(); }, 'another namespace');
注销信号处理器
有两种方法可以注销信号处理器。
通过命名空间
// unregister all handlers in "another namespace" $handler->unregisterNamespace('another namespace'); // unregister all SIGINT handlers in "a namespace" $handler->unregisterNamespace('a namespace', SIGINT);
通过信号
// unregister all SIGINT handlers in any namespace $handler->unregisterSignal(SIGINT);
许可证
本项目采用 MIT 许可证发布。