Exemplo n.º 1
0
 //    		$process['process_num'] = $cpuNum;
 //    	}
 //    	$newNum = $process['process_num'] - $processNum;
 $newNum = count($newProcess);
 echo "new process num {$newNum} \n";
 if (!empty($newProcess)) {
     foreach ($newProcess as $i) {
         $logFile = "{$logPath}/{$fileBaseName}_{$i}_" . uniqid() . ".log";
         if ($process['process_interval']) {
             echo date("Y-m-d H:i:s", $nowRunTime) . "\n";
             echo '运行定时进程: ' . $process['process_file'] . "\n";
             $start_rs = Process_Server::startProcessRootTimer(PROCESS_PATH . '/' . $process['process_file'], CLI_PATH, 5, $logFile, array($i));
         } else {
             echo date("Y-m-d H:i:s", $nowRunTime) . "\n";
             echo '运行damon进程: ' . $process['process_file'] . "\n";
             $start_rs = Process_Server::startProcessRoot(PROCESS_PATH . '/' . $process['process_file'], CLI_PATH, $logFile, array($i));
             # 将允许的进程序号传入
         }
     }
     $data = array('process_name' => $process['process_name'], 'process_file' => $process['process_file'], 'process_host' => $hostIP, 'process_state' => $process['process_state'], 'process_run_flag' => $start_rs === 0 ? 1 : 0, 'process_run_num' => $newNum, 'process_run_time' => date('Y-m-d H:i:s', $nowRunTime), 'operator_id' => OPERATOR_ID, 'server_code' => SERVER_ID, 'server_name' => SERVER_TITLE);
     $objProcess->addLog($data);
     if ($start_rs === 0 && $process['process_interval']) {
         $objProcess->setRunStat($dateKey, $process['process_id'], $nowRunTime);
         $processRunList[$dateKey][$process['process_id']] = $nowRunTime;
     }
 }
 //elseif(empty()){
 //    		if($process['process_file'] == 'Fight/BossCalc.php' || $process['process_file'] == 'Csbattle/FightControl.php'){
 //    			continue;
 //    		}
 //
Exemplo n.º 2
0
    }
    sleep(1);
}
# 获取process_list配置表进程列表,并按条件kill
$processList = $objProcess->getProcessList();
foreach ($processList as $process) {
    //非常驻进程
    if ($process['process_interval']) {
        continue;
    }
    //非主控进程
    if (!$mainProcess && $process['process_flag']) {
        continue;
    }
    //非跨服战进程
    if (!IS_CSBATTLE && $process['process_flag'] == 2) {
        continue;
    }
    Process_Server::killProcess(PROCESS_PATH . '/' . $process['process_file'], CLI_PATH);
}
chdir(PROCESS_PATH);
# 启动Control进程
$tryTime = 0;
while ($tryTime < 10) {
    $tryTime++;
    $status = Process_Server::startProcessRoot($scriptFile, CLI_PATH, '/tmp/logs' . '/process_' . uniqid() . '.log');
    if ($status === 0) {
        break;
    }
}
exit;