[code] // uninstall stop signal handler
pcntl_signal(SIGINT, SIG_IGN, false);
// uninstall graceful stop signal handler
pcntl_signal(SIGTERM, SIG_IGN, false);
// uninstall reload signal handler
pcntl_signal(SIGUSR1, SIG_IGN, false);
// uninstall graceful reload signal handler
pcntl_signal(SIGQUIT, SIG_IGN, false);
// uninstall status signal handler
pcntl_signal(SIGUSR2, SIG_IGN, false);
// reinstall stop signal handler
static::$globalEvent->add(SIGINT, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler'));
// reinstall graceful stop signal handler
static::$globalEvent->add(SIGTERM, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler'));
// reinstall reload signal handler
static::$globalEvent->add(SIGUSR1, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler'));
// reinstall graceful reload signal handler
static::$globalEvent->add(SIGQUIT, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler'));
// reinstall status signal handler
static::$globalEvent->add(SIGUSR2, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler'));
// reinstall connection status signal handler
static::$globalEvent->add(SIGIO, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler'));[/code]1)為什么沒(méi)有?pcntl_signal(SIGIO, SIG_IGN, false); ?
2)重裝信號(hào)處理器,似乎還是調(diào)用的 array('\Workerman\Worker', 'signalHandler'),為什么要重裝?
?
1、第一個(gè)等老大解釋吧,個(gè)人覺(jué)得也應(yīng)該有這個(gè);
2、第二個(gè)是因?yàn)橹鬟M(jìn)程和子進(jìn)程分別對(duì)信號(hào)的處理方式不同,是為了防止可能的信號(hào)沖突而設(shè)置;另外確實(shí)都調(diào)用了同一個(gè)信號(hào)回調(diào),這點(diǎn)并沒(méi)有什么問(wèn)題。