// $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; // } //
} 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;