예제 #1
0
 /**
  * Вывод текущего состояния сервиса.
  * 
  * @access protected
  * @static
  */
 protected static function cmdStatus()
 {
     try {
         $pid = Assets\PID::Read();
         echo "Running with PID={$pid}\n";
         exit(0);
     } catch (Assets\Exceptions\PID_Non_Existent_Exception $e) {
         echo "Currently not running\n";
         exit(0);
     } catch (Assets\Exceptions\PID_Open_Fail_Exception $e) {
         echo "PID-file exists but unreadable\n";
         exit(1);
     } catch (Assets\Exceptions\PID_Lock_Success_Exception $e) {
         echo "PID-file exists but not locked\nDaemon tragically died\n";
         exit(1);
     } catch (Assets\Exceptions\PID_Read_Fail_Exception $e) {
         echo "PID-file reading failed!\n";
         exit(1);
     } catch (\Exception $e) {
         var_export($e->getMessage());
     }
 }
예제 #2
0
 /**
  * Корневой метод мастера.
  * 
  * @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;
 }