/** * Корневой метод мастера. * * @return int * @access public * @static */ public static function main() { DEBUG && (print "Master::main(): begin\n"); static::$start_utime = microtime(true); try { cli_set_process_title('PingerService/Master/WarmUp'); // открытие PID-файла PID::Lock(); // регистрация обработчика сигналов static::initSignalHandlers(); // предварительная загрузка классов static::preloadClasses(); // сброс статистики хостов static::resetHostsStatuses(HostStatuses::SERVICE_STARTED); // включение Мастер-цикла static::$master_loop = true; // выполнение Мастер-цикла static::masterLoop(); cli_set_process_title('PingerService/Master/Shutdown'); // сброс статистики хостов static::resetHostsStatuses(HostStatuses::SERVICE_STOPPED); // закрытие PID-файла PID::Unlock(); // успешный выход DEBUG && printf("Master::main(): exit with status 0\n uptime %0.2fsecs, %d forks\n\n", microtime(true) - static::$start_utime, static::$fork_num); return 0; } catch (\Exception $e) { var_dump($e); } DEBUG && printf("Master::main(): exit with status 1\n uptime %0.2fsecs, %d forks\n\n", microtime(true) - static::$start_utime, static::$fork_num); return 1; }