start(); search\area_library::instance(); if(StatesHelper::fetch_state('init')) { Log::record("StatesHelper::fetch_state first.",Log::DEBUG); search\searcher::instance()->init(); } process_looper::instance()->init(new search\processor()); process_looper::instance()->add_listen($sockfd); process_looper::instance()->run_loop(); } catch (Exception $ex) { Log::record("Exception {$ex->getMessage()}",Log::ERR); } Log::record("child {$pid} searchwork quit",Log::DEBUG); exit(0); } global $config; $host = '0.0.0.0'; $port = $config['searcher']['port']; $listen_fd = event\util::listen($host,$port); if($listen_fd === false) { Log::record("cannot open listen socket = {$host}:{$port}",Log::DEBUG); return false; } $count = 1; event\util::fork_listenex($listen_fd,'searchwork',$count); socket_close($listen_fd); Log::record("searchwork all child process quit.");